Daten der grid-Ansicht aktualisieren ,Bearbeiten und löschen in vb.net windows-Formular, das über mehrere Tabelle zu füllen datagridview
Ich bin neu in windows Forms-Anwendungen...
Arbeite ich in VB.NET windows forms und im Umgang mit DataGridView...
Habe ich aufgefüllt, das DataGridView aus zwei Tabelle
Mir bitte sagen, Wie das Hinzufügen , Löschen und Bearbeiten/Aktualisieren Sie die Datensätze des DATAGridview zurück in die Datenbank.
Ich bin mit SQL Server 2008-Datenbank
Ich habe zwei Tabellen 1->CompanyMaster_tbl
in diese Zwei Felder . Cid and CompanyName
,
Cid ist der Primärschlüssel dieser Tabelle
2->DepartmentMaster_tbl
in diese 4 Felder. dtid,dtname,dtphon,dtmail,Cid
.
dtid ist der Primärschlüssel,und Cid ist der fremde Schlüssel..
Meine Daten gridview wie folgt Aussehen:
Dim adapter As SqlDataAdapter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'NOTE: I removed the Using statements to ease your tests/understanding, but you shouldn't let the connections opened (or, at least, set connection-release part somewhere)
Dim con As SqlConnection = New SqlConnection() 'SET THE CONNECTION STRING
con.Open()
adapter = New SqlDataAdapter("select c.CompanyName,d.dtName,d.dtPhone,d.dtEmail from CompanyMaster_tbl c join DepartmentMaster_tbl d on c.Cid=d.cId", con)
Dim dt As DataTable = New DataTable()
adapter.Fill(dt) 'Filling dt with the information from the DB
gv.DataSource = dt 'Populating gv with the values in dt
End Sub
in der update-button schrieb ich code wie diesen:
Dim dt1 As DataTable = DirectCast(gv.DataSource, DataTable)
adapter.Update(dt1)
aber nach dem Bearbeiten alles in gridview,ich klicken Sie auf die Schaltfläche "aktualisieren", aber ich erhalte eine Fehlermeldung in dieser Zeile
da.Update(dt1)
Fehler:
Aktualisieren erfordert einen gültigen UpdateCommand, wenn übergeben DataRow-Auflistung mit modifizierten Zeilen.
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um einige synchronisation zwischen den
DataGridView
und der DB, sollte man nicht hinzufügen von Spalten/Zeilen manuell, sondern verlassen sich auf dieDataSource
Eigenschaft. Beispiel-code angepasst, um Ihren Fall:Den obigen code extrahiert alle Informationen, die Sie wollen aus der DB, setzt es in einen
DataTable
(dt
) und dann führt es dieDataGridView
alsDataSource
.gv
hat nun alle Werte ausdt
; auch jede änderung indt
spiegelt sich ingv
und Umgekehrt (diese Kupplung ist fast perfekt, zumindest, wenn die Aktualisierung der Werte; möglicherweise gibt es einige Probleme beim löschen von Zeilen/Spalten oder das ändern der Grundkonfiguration). Man könnte sogar haltenadapter
wie eine Globale variable (außerhalb derUsing
- Anweisung) und verlassen sich auf Sie zum aktualisieren der DB regelmäßig (überadapter.Update(dt)
zum Beispiel).Durchaus ein paar alternativen, die aber in jedem Fall, sich auf eine
DataSource
ist sicherlich besser unter Ihren Bedingungen.