2016-05-27 25 views
0

Ich habe eine Button, die mir alles aus einer Datenbank und einem anderen Button listet, die gemacht wurde, um etwas aus der Datenbank mit "Name" zu löschen. Um dies zu tun, habe ich eine TextBox, wo ich den "Name" eingeben und löschen Sie es aus der Datenbank.Eine Zeile löschen durch DataGridView

Um die Dinge einfacher und schneller zu machen, hatte ich eine andere Lösung, die einfacher ist als das, was ich gerade mache. Ich möchte, dass es auf eine Zeile klickt und dann die Löschtaste Button drückt und die Zeile aus der Datenbank löschen lässt. Ich fand diese Lösung aber das funktioniert nicht:

For Each row As DataGridViewRow In myDataGrid.SelectedRows 
    myDataGrid.Rows.Remove(row) 
Next 

Im Grunde, was ich in dem Code zu tun habe, ist eine Abfrage machen und die Zeile auswählen, die ich richtig will?

Antwort

1

Die For[...]Next Anweisung löscht nur die DataGridViewRow aus der DataGridView. Es werden keine Änderungen an der Datenbank vorgenommen.

Eine DataGridView ist eine Ansicht der Daten. Sie müssten die Änderungen auf dem DataSet festschreiben.

Wenn Sie eine spezifischere Antwort wünschen, geben Sie den Code ein, der zeigt, wie Sie die Daten an die DataGridView binden.

1

Entschuldigung, kann ich nicht kommentieren. In beiden Fällen müssen Sie eine Löschabfrage verwenden, wenn Sie versuchen, den Datensatz aus der Datenbank zu löschen.

Unten ist ein Beispiel, wie man es tun:

delete selected row from datagridview and datasource table

Ohne eine gespeicherte Prozedur Sie diesen Code verwenden können:

Dim cn As OleDbConnection 
Dim cmd As OleDbCommand 
Dim cnstring As String = "Your connection String" 
Dim sqlstring As String = "Delete from yourTable where column= your record" 
cn = New OleDbConnection(cnstring) 
cmd = New OleDbCommand(sqlstring, cn) 
cn.Open() 
cmd.ExecuteNonQuery() 
cn.Close() 
Verwandte Themen