2012-05-22 3 views
0

Я пытаюсь создать таблицу в моей базе данных через C#, используя следующий метод:Ошибка синтаксиса на fielddefinition

private static void CreateTables() 
    { 
     _commandtext = "CREATE TABLE Users(" + 
         "ID Integer PRIMARY KEY, " + 
         "Username Text(20), " + 
         "Password Text(25), " + 
         "IBAN Text(18)" + 
         ");"; 
     _command = new OleDbCommand(_commandtext, _connection); 

     _connection.Open(); 

     int number = _command.ExecuteNonQuery(); <<< Error 

     _connection.Close(); 
    } 

Как-то возвращается ошибка: «SyntaxError в fielddefinition» Что я делаю неправильно?

Edit: решаемые, но все-таки: я использую это для доступа

+0

Разве это действительно содержит больше информации? И я бы не ожидал, что это будет «синтаксический» и «определение поля». Скопируйте и вставьте * точное сообщение об ошибке. –

+0

, если это для SQL Server (или любой другой СУБД, которую я знаю), вы должны использовать 'varchar (20)' или 'nvarchar (20)' вместо 'text (20)'. «Текст» - устаревший тип данных для большого количества текста. –

+2

Кроме того, расскажите, какие RDBMS вы используете – keyser

ответ

3

Вы пробовали добавлять квадратные скобки вокруг имен?

private static void CreateTables() 
{ 
    _commandtext = "CREATE TABLE [Users](" + 
        "[ID] Integer PRIMARY KEY, " + 
        "[Username] Text(20), " + 
        "[Password] Text(25), " + 
        "[IBAN] Text(18)" + 
        ");"; 
    _command = new OleDbCommand(_commandtext, _connection); 

    _connection.Open(); 

    int number = _command.ExecuteNonQuery(); <<< Error 

    _connection.Close(); 
} 

Может быть, ваш DB думает, что вы ссылки на другие поля вместо того, чтобы создавать новые с именами вы положили в

+0

Это сделало трюк. Спасибо за невероятно быстрый ответ/решение. –

0

Если вы используете SQL Server, вы должны попробовать:.

_commandtext = "CREATE TABLE Users(" + 
       "ID Integer PRIMARY KEY, " + 
       "Username VARCHAR(20), " + 
       "[Password] VARCHAR(25), " + 
       "IBAN VARCHAR(18)" + 
       ");"; 
Смежные вопросы