Как вы создаете таблицу MS Access в C # программно? - PullRequest
1 голос
/ 24 января 2011
command.CommandText = "CREATE TABLE MyTable (" +
                "[Count] INT NOT NULL AUTO_INCREMENT PRIMARY KEY ," +
                "[TimeAndDate] TIMESTAMP NOT NULL ," +
                "[SerialNumber] VARCHAR( 14 ) NOT NULL ," +
                "[Result] BOOL NOT NULL ," +
                "UNIQUE ([TimeAndDate]))";

command.ExecuteNonQuery();

Код выше помечает исключение синтаксической ошибки, можете ли вы помочь мне исправить строку запроса? Спасибо.

Ответы [ 3 ]

3 голосов
/ 03 августа 2011

Я бы предложил вставить полученный текст запроса в запрос Access; это скажет вам, где ошибка.

В моем Access XP вставка результирующего SQL приводила к синтаксической ошибке AUTO_INCREMENT; это должно быть AUTOINCREMENT (см. Access 2007 SQL типы данных ) и должно быть указано как тип данных, а не как ограничение. BOOL также выдал ошибку => использовать BIT

Результат, который сработал:

CREATE TABLE MyTable (
               [Count] AUTOINCREMENT NOT NULL PRIMARY KEY ,
               [TimeAndDate] TIMESTAMP NOT NULL ,
               [SerialNumber] VARCHAR( 14 ) NOT NULL ,
               [Result] BIT NOT NULL ,
               UNIQUE ([TimeAndDate]));
2 голосов
/ 24 января 2011

Вам нужна конечная скобка ).

1 голос
/ 24 января 2011

Сразу после MyTable вы используете открытую скобку "(", которую вы не закрываете.

Для создания таблиц в Access я обычно использую ADOX , это предотвращает синтаксические ошибки такого типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...