Ich versuche DataAdapter in C# .net zu verwenden. und ich verstehe immer noch nichts über DataAdapter.DataAdapter muss die db-Verbindung nicht öffnen?
Ich habe viele Artikel und Blogs über DataAdapter und DataReader gelesen.
Ich habe verstanden, dass DataAdapter Datenbank automatisch öffnet und schließt, wenn sie benötigen.
Aber
//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");
Wenn ich den Code oben laufen, erhalte ich eine Fehlermeldung, die sagen: „Verbindung offen sein muss.“
Warum kann der Adapter die Verbindung nicht automatisch öffnen?
und ich möchte Daten mit InsertCommand einfügen (für diesen Test habe ich die Verbindung geöffnet).
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.
Viele Beispiel mit adapter.Update(), aber für mich ist es nicht funktioniert :(
Kein Fehler und eingefügt nichts
und mit da.InsertCommand.ExecuteNonQuery(). stattdessen Update(), es funktioniert.
, was mache ich falsch?
Dank!
Verbindung offen Code wird bereits durch die OP kommentiert. Es sollte ein Kommentar sein. – Pankaj
@ PankajGarg das ist genau der Grund für den Fehler des OP-Codes. Ich verstehe, dass Sie eine Antwort veröffentlichen, wenn Sie den Fehler finden. – Steve
Vielen Dank für Ihre Antwort! Nach dem Füllen zu DataSet wird die Verbindung geschlossen. Wenn wir danach die Datenbank aktualisieren müssen, müssen wir die Verbindung manuell öffnen und schließen, oder? und weißt du von der zweiten Frage? –