2015-05-01 3 views
2

У меня есть таблица в моей базе данных MS Access под названием «Жанры». Он имеет следующие столбцы:Невозможно вставить запись в MS Access через C# oledb

  • ID -> AutoNumber
  • Index -> Номер
  • GenreText -> Текст

Здесь # код C, который я использую:

public static void AddGenre(string text, int index) 
    { 
     string query = "INSERT INTO Genres(Index, GenreText) VALUES(@index, @text)"; 
     using (OleDbConnection con = new OleDbConnection(connectionString)) 
     { 
      try 
      { 
       OleDbCommand command = new OleDbCommand(query, con); 

       command.Parameters.AddWithValue("@index", index); 
       command.Parameters.AddWithValue("@text", text); 

       con.Open(); 
       command.ExecuteNonQuery(); 
      } 
      catch (Exception ex) 
      { 
       throw new ArgumentException(); 
      } 
     } 
    } 

Проблема в том, что я всегда получаю исключение «Ошибка синтаксиса в инструкции INSERT INTO».

Я просто не могу найти проблему. Мои другие функции для управления данными из базы данных работают нормально.

+2

Индекс - это зарезервированное слово в MS Access. Приложите слово в скобках так: Genres ([Index], GenreText) – Fink

+0

@Fink, в этом была проблема. Огромное спасибо. Я боролся с этим последние пару часов. – snaksa

ответ

4

Индекс reserved keyword in Access. Вы должны заключить его в []. Попробуйте следующее:

INSERT INTO Genres([Index], GenreText) VALUES(@index, @text) 
Смежные вопросы