Daten in eine MS-Access Tabelle reinschreiben?
-
Hallo, ich ein Problem mit folgendem Code:
private void cmdSave_Click(object sender, EventArgs e) { DataTable table=myDataSet.Tables["Kunden"]; //neue zeile hinzufügen DataRow zeile = table.NewRow(); //werte an die Spalten übergeben zeile["Kundennummer"] = txtNummer.Text; zeile["Name"] = txtName.Text; //werte an die tabelle übergeben table.Rows.Add(zeile); myDataSet.AcceptChanges(); }
Die Funktion soll eine neue Zeile erstellen, und diese dann der Tabelle hinzufügen. Das erstellen klappt so weit, allerdings werden die Daten nicht in die Accesstabelle geschrieben. Weiss jemand was mir fehlt?. Danke.
-
Wo ist denn Dein UpdateCommand?
-
private void cmdSave_Click(object sender, EventArgs e) { DataTable table=myDataSet.Tables["Kunden"]; //neue zeile hinzufügen DataRow zeile = table.NewRow(); //werte an die Spalten übergeben zeile["Kundennummer"] = txtNummer.Text; zeile["Name"] = txtName.Text; //werte an die tabelle übergeben table.Rows.Add(zeile); myDataSet.AcceptChanges(); //Hier mein Update myDataAdapter.Update(table); }
Noch mal mit Update(), ist aber nicht die Lösung.
-
Du solltest AcceptChanges nicht vorm Update aufrufen.
-
Funktioniert auch nicht
-
Du hast dem DataAdapter auch einen InsertCommand zugewiesen?
-
Hmm, nein. Kannst du mir vielleicht zeigen, wie sowas aussieht?
-
Du kannst mit dem CommandBuilder eins erstellen. Koennte dann ungefaehr so
aussehen:DataSet ds = this._ds.GetChanges(); System.Data.OleDb.OleDbCommandBuilder cb = new System.Data.OleDb.OleDbCommandBuilder(this._da); this._da.Update(ds);
oder manuell aehnlich wie in diesem Thread:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-146713-and-highlight-is-.html
-
Hmm, gibts es denn keine andere Möglichkeit(komme von ADO 2.6), ausser mit einem SQL-Statement, ich meine ich habe über 40 Spalten hier...Danke abbes, werde mal deinen Vorschlag ausprobieren.
-
Du musst das SQL-Statement auch nicht unbedingt im Code zusammensetzen.
Ich wuerde es dann ueber eine parameterisierte Abfrage in Access laufen lassen
...InsertAbfrage schrieb:
PARAMETERS pVorname Text ( 255), Nachname Text ( 255);
INSERT INTO Tab1 ([Vorname] , [pNachname] )
VALUES (pVorname, pNachname)...diese dann im Code aufrufen und die Parameter uebergeben.
-
Naja, letzt endlich ist es auch nur eine SQL-Anweisung