|
|
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
авторstring connect ="Persist Security Info=false;Server=mySERV;Database=myDB;Integrated Security=true"; string select = "SELECT * "+"FROM myTable"; SqlConnection mySqlconnect = new SqlConnection(connect); SqlCommand mySqlcommand = mySqlconnect.CreateCommand(); mySqlcommand.CommandText=select; SqlDataAdapter myAdapter = new SqlDataAdapter(); myAdapter.SelectCommand=mySqlcommand; DataSet myDataset = new DataSet(); mySqlconnect.Open(); myAdapter.Fill(myDataset, "myTable"); DataTable myTable = myDataset.Tables["myTable"]; DataRow newRow = myTable.NewRow(); newRow["Host"] = Dns.GetHostName().ToUpper(); newRow["Best"] = 585; myTable.Rows.Add(newRow); myTable.AcceptChanges(); foreach (DataRow row in myTable.Rows) { Console.WriteLine(row["row"]); Console.WriteLine(row["row2"]+""); } myAdapter.Fill(myDataset, "myTable"); mySqlconnect.Close(); Блок foreach выводит все записи и те что были и ту что добавил, но в БД ничего не добавляется. Насколько я понял за это отвечает именно myAdapter.Fill(myDataset, "myTable"); Если тоже самое делать через Insert запрс в SqlCommand.CommandText то все работает как надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 15:03 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
myTable.AcceptChanges() выкинь, вместо него myAdapter.Update() Fill() не добавляет в БД, а читает из нее. Все изменения в БД делаются Update-ом. Сергей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 15:54 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
авторmyTable.AcceptChanges() выкинь, вместо него myAdapter.Update() Так и сделал, терь выдает System.InvalidOperationException ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 16:58 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
шоб Update работал нужно у адаптера настроить UpdateCommand, DeleteCommand и InsertCommand ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 17:27 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
[quot автор]шоб Update работал нужно у адаптера настроить UpdateCommand, DeleteCommand и InsertCommand[quot автор] мне кажется это не то при таком подходе DataSet ненужен становится. Мне интересно именно его использование, т.е. загружаем в него таблицу, правим ее а потом это все обратно в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2006, 21:08 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Armitage Так и сделал, терь выдает System.InvalidOperationException Привидите StackTrace Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 08:47 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
авторПривидите StackTrace эм... это что такое ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 11:37 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Armitage эм... это что такое ? вообще то RTFM. Чтобы понять можете поискать по .NET форумам по строке: StackTrace Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 14:50 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Armitage[quot автор]шоб Update работал нужно у адаптера настроить UpdateCommand, DeleteCommand и InsertCommand автор мне кажется это не то при таком подходе DataSet ненужен становится. Мне интересно именно его использование, т.е. загружаем в него таблицу, правим ее а потом это все обратно в БД Вот "обратно" как раз с помощью UpdateCommand, DeleteCommand и InsertCommand. До этого все данные - только в DataSet. А вообще, действительно, RTFM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:19 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Эрмитажу: DataSet в .NET - это не Адовский рекордсет, DataSet - отсоединенное хранилище и обновлять БД в СУБД он сам не умеет. (Что в общем-то хорошо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:40 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
всем спасибо, проблема решилась строчками: SqlCommandBuilder builder = new SqlCommandBuilder(myAdapter); myAdapter.Update(myDataset, "myTable"); Р.S. сорри что немного не вьехал в тему, пал жертвой непраильного мануала :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 23:54 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Учтите, что SqlCommandBuilder - last resort для начинающих, работает далеко не для всех запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 10:16 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Мне просто интересно, почему метод Update сохраняет в бд, тока когда в DataTable не былизафиксированы изменения, тоесть если было использовано myDataTable.AcceptChanges(), то UpDate не сохраняет изменения в бд. Может кто подскажет? И зачем тогда вообще нужно фиксировать изменения, если не чего не работает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2006, 13:15 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
При изменениях в DataSet, грубо говоря, записи помечаются метками (ins/del/upd). adapter.Update() для каждой записи с меткой вызывает соответствующий command. Так изменения переносятся в БД. AcceptChanges ликвидирует все метки превращая Set в "неизмененный". Соответственно после вызова AcceptChanges для adapter.Update() не будет работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 09:38 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
Не могли бы вы превести пример, зачем надо вообще фиксировать изменения, я лично мало смысла вижу в этом...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 13:32 |
|
||
|
SqlDataAdapter.Fill() не работает
|
|||
|---|---|---|---|
|
#18+
например, если у вас нет СУБД. А DataSet заполняется при загрузке программы из XML-файла, а при закрытии, XML-файл записывается из DataSet. Если у вас пользователь отредактировал несколько записей и нажал "Применить" - вызываем AcceptChanges и изменения применяются. Если он передумал и нажимает "Откат", то DataSet позволяет откатить все последние изменения, если не был вызван AcceptChanges. Читайте книги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2006, 14:36 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=33574739&tid=1353419]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 312ms |

| 0 / 0 |
