Member 13356973 Ответов: 1

Почему этот код не работает


У меня есть этот код для создания таблицы, если она не существует:

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

Опубликуйте что-нибудь в качестве решения, чтобы это больше не оставалось без ответа.

1 Ответов

Рейтинг:
10

Member 13356973

Sqlcommand, который команда = новая команда sqlcommand("если аргумент object_id('UXMenu', 'У') имеет значение null создать таблицу UXMenu(идентификатор первичный ключ типа int идентичности(1,1), TransDocument типа char(5), TransSerial типа char(5), TransDocNumber поплавок, PartyName тип char(60), PartyLocalityID типа char(5), TotalAmount тип char (25), ShipToPostalCode тип char(35), Эстадо инт);" шарнир равных угловых скоростей);