update Tabelle in der Datenbank aus datatable
Lade ich Daten aus einer Datenbank-Tabelle, wie dies...
using (view_adapter = new SqlDataAdapter("select * from TVServiceProvider", connection_string))
{
using (dt = new DataTable())
{
view_adapter.Fill(dt);
for (int i = 0; i < dt.Columns.Count; i++)
{
if (dt.Columns[i].ColumnName.Substring(0, 2).Equals("id"))
dt.Columns[i].ReadOnly = false;
}
bs.DataSource = dt;
}
}
Wo SqlDataAdapter view_adapter
und DataTable dt
. Um änderungen an der Datenbank habe ich erstellt-Methode
void View_Adapter_Click(object sender, EventArgs e)
{
try
{
view_adapter.Update(dt);
dt.AcceptChanges();
}
catch (Exception exc)
{
this.radLabelElement1.Text = exc.Message;
}
}
Aber wenn ich auf die Schaltfläche klicke habe ich eine Ausnahme. Es erfordert update-Befehl. Wo und welchen Befehl ich verwenden soll?
- Können Sie uns die genaue exception-details?
- NÖ. Es ist in russischer Sprache. Aber ich denke, dass es JMD wie diese
Update requires a valid UpdateCommand when passed DataRow collection with modified rows.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie erstellen
UpdateCommand
undDeleteCommand
für Sieview_adapter
.EDIT:
Muss der code wie folgt Aussehen:
Gut, etwas ist falsch oder nicht klar in Ihrem code.
Die view_adapter variable initialisiert wurde in einem using-block-Anweisung.
So beim Ausstieg aus der using-block, der view_adatpter entsorgt werden, die durch den Rahmen und unbrauchbar in das click-Ereignis. (wie Sie haben nie aufgerufen, neu zu initialisieren).
Ich vermute, dass Sie ein anderes problem hier. Using-Anweisung
Einem Teil von diesem, automatisch zu erstellen, der UpdateCommand -, InsertCommand und DeleteCommand erforderlich, um CRUD-Operationen mit einem DataAdapter können Sie ein SqlCommandBuilder.
(Dies ist nur möglich, wenn Sie eine Tabelle in der select-Anweisung und die Tabelle hat einen primary key definiert)
Also, um alles zusammenzufassen:
dann ein Klick-Ereignis funktioniert wie jetzt.
Dieser code ist nicht mit Ihnen, aber kann Ihnen helfen, Wenn Sie geben ihm einen Blick. Ich habe es von MSDN
Was eigentlich war für mich von Steve und Hamlet Vorschläge ist die folgende. Ich hatte einen Schluckauf, weil ich versucht, eine für die Veränderungen auf meiner Zeilen und der Tabelle, bevor Sie die view-adapter aktualisieren. Die Veränderungen in nur benötigt, um speichern Sie die änderungen an der datatable Sie vor der Wiederverwendung der datatable für die Darstellung in einem gridview oder andere Operationen.