Ich habe schon viel mit Datenbanken gearbeitet, allerdings habe ich bis jetzt immer Linq to SQL oder Entity Framework verwendet.
Nun muss ich auf ADO.NET zurückgreifen und möchte mit DataSets einen Eintrag in einer Tabelle hinzufügen.
Ich versuche vergeblich mit ADO.NET und DataSets eine Zeile in eine Tabelle einzufügen.
Mein Code lässt sich kompilieren und es tritt auch keine Fehler auf, aber die Zeile
wird nicht in die Datenbank geschrieben. Die Tabelle "Students" ist weiterhin leer.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| using (SqlConnection sqlConnection = new SqlConnection(Properties.Settings.Default.ConnectionString)) { sqlConnection.Open();
try { SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("Select * From Students", sqlConnection); DataSet dataset = new DataSet(); sqlDataAdapter.FillSchema(dataset, SchemaType.Source, "Students"); DataTable channelSetTable = dataset.Tables["Students"];
DataRow newRow = channelSetTable.NewRow(); newRow["Forename"] = "Max"; newRow["Surname"] = "Mustermann"; newRow["Birthdate"] = DateTime.Parse("18.01.1995"); channelSetTable.Rows.Add(newRow);
dataset.AcceptChanges(); sqlDataAdapter.Update(channelSetTable); } finally { sqlConnection.Close(); } } |
Eigentlich sollte mit der Zeile 21 ("sqlDataAdapter.Update(channelSetTable)") die neue Zeile
in die Datenbank eingefügt werden. Wird es aber nicht.
Warum? Was mache ich falsch?
Ich verstehe auch nicht, warum ich im Konstruktor von SqlDataAdapter unbedingt einen Select-Befehl eingeben muss.
Grüße, Peter