Я пытаюсь использовать DataAdapter в С#.net. и еще я что-то не понимаю про DataAdapter.
Я прочитал много статей и блогов о DataAdapter и DataReader.
Я понял, что DataAdapter автоматически открывает и закрывает базу данных, когда им это нужно.
Но,
//conn.Open();
AdsDataAdapter da;
da = new AdsDataAdapter("Select * from Test", conn);
AdsCommandBuilder cb;
cb = new AdsCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "Test");
DataRow newrow = ds.Tables["Test"].NewRow();
newrow["Name"] = "How about";
ds.Tables["Test"].Rows.Add(newrow);
da.Update(ds, "Test");
Когда я запускаю приведенный выше код, я получаю сообщение об ошибке, в котором говорится: «Соединение должно быть открыто».
Почему адаптер не может открыть соединение автоматически?
и я хочу вставить данные с помощью команды insertCommand (для этого теста я открыл соединение).
da.InsertCommand = new AdsCommand("INSERT INTO test (NAME) values('Insert Test #1')", conn);
//da.InsertCommand.ExecuteNonQuery(); // it works
da.Update(ds,"Test"); //but it does not works.
Многие примеры используют Adapter.Update(), но у меня это не работает :(
Никаких ошибок и ничего не вставлено.
и используя da.InsertCommand.ExecuteNonQuery(); вместо Update() это работает.
Что я делаю не так?
Спасибо!