Почему этот код не работает
У меня есть этот код для создания таблицы, если она не существует:
MessageBox.Show("create table"); conn.Open(); SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS NULL CREATE TABLE UXMenu(ID int PRIMARY KEY AUTOINCREMENT, TransDocument char(5), TransSerial char(5), TransDocNumber float, PartyName char(60), PartyLocalityID char(5), TotalAmount char (25), ShipToPostalCode char(35), Estado int);", conn); command.ExecuteNonQuery(); MessageBox.Show("tabela criada"); conn.close();
Но этот код не работает, я получаю первый messagebox, но затем он просто игнорирует остальную часть кода и ничего не создает.
Что я уже пробовал:
MessageBox.Show("create table"); conn.Open(); SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS NULL CREATE TABLE UXMenu(ID int PRIMARY KEY AUTOINCREMENT, TransDocument char(5), TransSerial char(5), TransDocNumber float, PartyName char(60), PartyLocalityID char(5), TotalAmount char (25), ShipToPostalCode char(35), Estado int);", conn); command.ExecuteNonQuery(); MessageBox.Show("tabela criada"); conn.close();
Richard Deeming
Три варианта:
1) код выполняется;
2) код выдает исключение;
3) код, который вы запускаете, - это не тот код, на который вы смотрите;
Если это #2, то вам нужно показать нам полную информацию об исключении.
Отладьте свой код и шагайте по нему строка за строкой, чтобы увидеть, где он идет не так.
Richard Deeming
NB: Если вы используете Microsoft SQL Server, то, скорее всего, получите исключение синтаксиса SQL, относящееся к AUTOINCREMENT
Это ключевое слово Microsoft Access; в SQL вы используете IDENTITY
вместо этого собственность.
Member 13356973
1: код не выполняется;
2: я не получаю никаких исключений;
3: код, который я ищу, - это код, который работает.
Jochen Arndt
Если это тот код, который вы используете:
Почему вы выполняете
command.ExecuteNonQuery();
дважды?
Member 13356973
Это была проблема идентичности теперь она решена спасибо
Member 13356973
дважды? Я делаю это только один раз
Jochen Arndt
Первый раз в той же строке, что и создание SqlCommand, а затем снова в следующей строке.
Member 13356973
Извините, я не могу вас понять
Jochen Arndt
Почему тогда вы отредактировали свой вопрос и удалили первый звонок из раздела "Что я пробовал"?
Но вы забыли первый фрагмент кода.
Member 13356973
фрагмент кода?
Jochen Arndt
Первый блок кода (snippet = fragmento).
ZurdoDev
Опубликуйте что-нибудь в качестве решения, чтобы это больше не оставалось без ответа.