Code:
System.Data.OleDb.OleDbException: Parameter?_7 hat keinen Standardwert.
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet)
meint er, wenn ich in meinem DataGrid Änderungen
an den bestehenden Daten vornehme. Füge ich etwas neues hinzu und gehe auf "Speichern" funktioniert es problemlos!
Zum Programm: Ich verwende ein DG, einen OleDbDataAdapter, eine OleDbConnection und ein DataSet.
Der Button "Speichern" ruft folgende Aktionen auf:
Code:
try
{
DataSet changedData = dataSet11.GetChanges();
if(changedData != null)
{
//int numRows =
oleDbDataAdapter1.Update(changedData);
dataSet11.AcceptChanges();
}
else
{
MessageBox.Show("Es sind keine Daten zum Speichern vorhanden!",
"Keine Änderungen");
}
}
catch(Exception ex)
{
MessageBox.Show("Beim Aktualisieren der Datenbank ist ein Fehler "+
"aufgetreten: " + ex.Message, "Fehler", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
Also ich bin mit meinem Latein am Ende...
Kann mir von euch wer helfen?
*** edit ***
Also ich nehme ja an, dass es mit dem Primärschlüssel zusammenhängt?!
Im UpdateCommand-String ist der ominöse Parameter 7 "t_index", eben der Primärschlüssel (Autowert).
Hier das SQL-Satement:
Code:
UPDATE tblDaten
SET t_alter = ?, t_nachname = ?, t_plz = ?, t_strasse = ?, t_vorname = ?, t_wohnort = ?
WHERE (t_index = ?) AND (t_nachname = ? OR
? IS NULL AND t_nachname IS NULL) AND (t_plz = ? OR
? IS NULL AND t_plz IS NULL) AND (t_strasse = ? OR
? IS NULL AND t_strasse IS NULL) AND (t_vorname = ? OR
? IS NULL AND t_vorname IS NULL) AND (t_wohnort = ? OR
? IS NULL AND t_wohnort IS NULL)