Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Не работает insert в БД(access)


Автор: LastGhost 28.8.2010, 14:41
Добрый день. 
Такая вот проблема... есть mdb файл, селект из него делать получается, а вот Insert работать не хочет, сколько не мучаюсь :(
код вот такой:
Код

string connectionString = "provider=Microsoft.Jet.OLEDB.4.0; data source=D:\\project\\test.mdb";
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.Connection = myOleDbConnection;
oleDbCommand.CommandText = "INSERT INTO table(col) VALUES ('xxx')";
myOleDbConnection.Open();
oleDbCommand.ExecuteNonQuery();
myOleDbConnection.Close();

на строке 7 выдает: "Ошибка синтаксиса в инструкции INSERT INTO."  smile 

//файл test.mdb содержит таблицу table, с двумя колонками key - ключевое поле(счетчик), второе поле col - текстовое поле. (в таблице заполнено пару полей)
//access 2007 (файл сохранен как access 2002-2003)
//код пишется в Visual Studio 2010

Автор: m0dest 28.8.2010, 15:00
А если 5-ую строку заменить на 
Код

oleDbCommand.CommandText = "INSERT INTO table VALUES (123, 'xxx')";

что будет?

Автор: LastGhost 28.8.2010, 15:22
 smile 
Спасибо!!! получилось  smile 

Автор: Экскалупатор 28.8.2010, 16:52
все дело что "table" это зарезервированное слово, переименуй его во что нибудь другое и твой запрос будет работать.
а задавать руками значение ключевого поля это как то не правильно....

Добавлено через 1 минуту и 12 секунд
к примеру:
Код

insert into table1 (col) VALUES ('adf');

добавляет строку в таблицу

Автор: LastGhost 29.8.2010, 13:51
таблицу уже переименовал, но выше приведенный пример всеравно не работает... :(

Автор: Экскалупатор 29.8.2010, 14:08
специально проверил, если таблица называется table то выпадает ошибка синтаксиса, как только переименовал в table1(в запросе только не забудь изменить) и сразу все работает.

Автор: LastGhost 29.8.2010, 14:16
хм... странно все это но у меня не работает:(
хотя переименовал и в файлике и в коде..... и таблицу и название калонок, и с пробелами между командой и скобками все варианты перебирал, всеравно не хочет....
ладно, буду задавать ключ.. стремновато конечно, ну да ладноsmile 

спасибо.

Автор: Экскалупатор 29.8.2010, 14:32
не понятно, а можешь выложить архив с базой?

Автор: LastGhost 29.8.2010, 14:50
пересоздал БД, переписал программу - все заработало smile так что наверно где-то чето был запоролsmile

Спасибо! 

Автор: Экскалупатор 29.8.2010, 15:00
да не вопрос, но задавать ключ руками это не кошерно...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)