powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataAdapter
8 сообщений из 8, страница 1 из 1
Про DataAdapter
    #32950476
and2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Растолкуйте мне как пользоваться адаптером для
сохранения измененных или добавленных данных в таблицу.
Порывшись в форуме ответа не нашел.
Привожу пример кода у которого не знаю продолжения


System.Data.OleDb.OleDbDataAdapter ad1;
System.Data.DataTable tb;
System.Data.DataRow row;

tb= new DataTable("table1");

ad1= new System.Data.OleDb.OleDbDataAdapter();
ad1.SelectCommand= new System.Data.OleDb.OleDbCommand("SELECT str_val FROM table1", conn);
ad1.InsertCommand= new System.Data.OleDb.OleDbCommand("???????", conn);

ad1.Fill(tb);

row= tb.NewRow(); row[0]= "123"; tb.Rows.Add(row);
row= tb.NewRow(); row[0]= "234"; tb.Rows.Add(row);
tb.AcceptChanges();

Как синхронизировать полученную таблицу tb с SQL таблицей table1?
Пробовал еще раз вызывать FILL - результат никакой.
Что должно содержаться в тексте ad1.InsertCommand ?
...
Рейтинг: 0 / 0
Про DataAdapter
    #32950529
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Insert into ... values ....
...
Рейтинг: 0 / 0
Про DataAdapter
    #32950579
and2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что должно содержаться в VALUES(???)
...
Рейтинг: 0 / 0
Про DataAdapter
    #32950609
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте сгенерить InsertCommand с помощью OleDbCommandBuilder.
Например, так:
Код: plaintext
1.
OleDbCommandBuilder cb = new OleDbCommandBuilder(ad1);

Вышеуказанную строку поместите вместо строки:
Код: plaintext
1.
ad1.InsertCommand= new System.Data.OleDb.OleDbCommand("???????", conn);

По поводу INSERT вопрос скорее по SQL, чем по C# или .NET.
...
Рейтинг: 0 / 0
Про DataAdapter
    #32950617
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+

PS
для этого в SELECT команде необходимо считать PK в таблицу tb
PSS
обновление данных в БД делать через ad.Update
PSSS
tb.AcceptChanges(); - не нужен, убери его, т.к. никакие изменения после него в БД не попадут. адаптер сам выдаст AcceptChanges после внесения изменений.
...
Рейтинг: 0 / 0
Про DataAdapter
    #32950685
and2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что касается использования INSERT в SQL я немного разбираюсь. Просто я думал, что в адаптере его нужно как-то привязывать к набору данных. Поэтому и возник вопрос о VALUES(???)
А вот OleDbCommandBuilder щас попробую применить.
...
Рейтинг: 0 / 0
Про DataAdapter
    #32950707
and2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да все заработало. Спасибо за советы.
...
Рейтинг: 0 / 0
Про DataAdapter
    #32951990
Aleksey_t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если у тебя сложный запрос, то CommandBuilder тебе не поможет.
Тогда в "INSERT INTO ... VALUES(...." укажи параметры и посоздавай эти параметры, например так:
ad1.InsertCommand.Parameters.Add(new OleDbParameter("Param1", OleDbType.Date, 0, "Column1"));

Т.е. как видишь в примере, параметр "Param1" был связан со столбцом "Column1".
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Про DataAdapter
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]