Здравствуйте! Сегодня: Вт, 7 Сен 2010, Ваш IP: 38.107.191.117 Вход | Регистрация | Забыли пароль?
> Список форумов Kbyte.Ru - - Базы данных
+ Добавить ответ | + Создать новую тему Страница: 1
Тема: Запись данных в Access в С# дата добавления: 07.07.2010 / 14:48
Автор темы:
Temur Yakubov
тем: 2/ответов: 2/благодарностей: 0

ответов: 2
вопросов: 2


Здравствуйте! У меня такая проблема. Мне нужно записать данные в БД Access в C#. Построил строку соединения с БД, открыл, создал новую строку в ДатаСет, инициализировал пункты, добавил строку (Add), ввожу данные в БД. Компиляция нормальная. Возникает ошибка в строке

OleDbDataAdapter1.Update(DataSet1, "Table1");

Ошибка в синтаксисе INSERT INTO.

Помогите пожалуйста
Технологии: C#, Microsoft Access


 
Ответ # 1 # дата добавления: 07.07.2010 / 15:08
Автор ответа:
Aleksey Nemiro
тем: 462/ответов: 2915/благодарностей: 39
Администратор
Эксперт

Url: aleksey.nemiro.ru
Icq: 261779681
Skype: alekseynemiro
ответов: 2915
вопросов: 462


Нужно больше кода, чтобы понять в чем там ошибка.

PS: Рекомендую также посмотреть этот сервис - http://db.foxtools.ru/ , там можно генерировать готовые классы для работы базами данных MS Access и MS SQL Server.
--
@aleksey_nemiro

- Нашел ответ самостоятельно, расскажи всем!
- Анонимус загрузи фотку, тебя не видно!
- Незабываем нажимать на Спасибо (пометить ответ, как правильный)! ;-)
- Помни: Одна тема - один вопрос!
- Kbyte Bonus Points ($$$) за вопросы и ответы на форумах Kbyte.Ru ... (Уже выдано!)

[- Изменить подпись | Личное сообщение админу | Искать друзей | Пригласить друзей | Чииииз :-) | Web-инструменты | Слоны | Деньги -]
 
Ответ # 2 # дата добавления: 08.07.2010 / 11:23
Автор ответа:
Temur Yakubov
тем: 2/ответов: 2/благодарностей: 0

ответов: 2
вопросов: 2


Код такой

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
string connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\common\data\SRT.mdb";  
      OleDbConnection thisConnection = new OleDbConnection(connectionstring);  
      OleDbDataAdapter thisAdapter = new OleDbDataAdapter();  
      thisAdapter.SelectCommand = new OleDbCommand("SELECT Login,Password FROM Table1", thisConnection);  
      OleDbCommandBuilder thisBuilder = new OleDbCommandBuilder(thisAdapter);  
      thisConnection.Open();  
      DataSet thisDataSet = new DataSet();  
      thisAdapter.Fill(thisDataSet,"Table1");  
      DataRow thisRow = thisDataSet.Tables["Table1"].NewRow();  
      //thisRow["Код"] = "0";  
      thisRow["Login"] = logtextBox.Text;  
      thisRow["Password"] = passtextBox.Text;  
      thisDataSet.Tables["Table1"].Rows.Add(thisRow);  
      // thisAdapter.ContinueUpdateOnError = true;  
      thisAdapter.Update(thisDataSet,"Table1");  
      thisConnection.Close();  
 
Ответ # 3 # дата добавления: 08.07.2010 / 11:32
Автор ответа:
Aleksey Nemiro
тем: 462/ответов: 2915/благодарностей: 39
Администратор
Эксперт

Url: aleksey.nemiro.ru
Icq: 261779681
Skype: alekseynemiro
ответов: 2915
вопросов: 462


Нужно прописать InsertCommand
OleDbDataAdapter1.InsertCommand = New OleDbCommand("INSERT INTO Table1 ([Login], [Password]) values (?, ?)", thisConnection)
и добавить все параметры
OleDbDataAdapter1.InsertCommand.Parameters.Add("@Login", OleDbType.VarChar, 255, logtextBox.Text)
в строгом порядке, как в запросе.
--
@aleksey_nemiro

- Нашел ответ самостоятельно, расскажи всем!
- Анонимус загрузи фотку, тебя не видно!
- Незабываем нажимать на Спасибо (пометить ответ, как правильный)! ;-)
- Помни: Одна тема - один вопрос!
- Kbyte Bonus Points ($$$) за вопросы и ответы на форумах Kbyte.Ru ... (Уже выдано!)

[- Изменить подпись | Личное сообщение админу | Искать друзей | Пригласить друзей | Чииииз :-) | Web-инструменты | Слоны | Деньги -]
 
Ответ # 4 # дата добавления: 09.07.2010 / 10:54
Автор ответа:
Temur Yakubov
тем: 2/ответов: 2/благодарностей: 0

ответов: 2
вопросов: 2


Заработало! Большое спасибо.
 
Реклама  
Страница: 1 + Добавить ответ | + Создать новую тему