2016-09-08 1 views
0

Ich habe Formular, die ein Datagrid enthalten Ich möchte, Wenn Benutzer eine Zeile des DataGrid ausgewählt und klicken Sie auf die Bearbeitungsschaltfläche die Daten des Datagrid wird in einem neuen Formular geöffnet und Benutzer kann es bearbeiten und speichern.Wie bekomme ich Daten der ausgewählten Zeile in neuer Form und Benutzer kann sie bearbeiten?

Sorry, aber ich habe keine Logik, weil ich im Einstiegsmodell Programmierer.

Wie schreibe ich einen Code auf meine 'EDIT DATA' Schaltfläche Ich habe 9 Felder auf meinem primären Formular in Datagrid.

Ich verwende sql server 2010 and vb2008.

+0

Wenn es ist WinForms, dann ist es wahrscheinlich eine DataGridView (nicht DataGrd). Wenn die Daten getippt werden (dies ist einfach möglich, wenn sich die Daten in einer DataTable befinden), können Benutzer Datensätze in diesem DGV bearbeiten und hinzufügen. Nicht wirklich ein Bedürfnis, sie woanders zu senden – Plutonix

Antwort

1

Sie können wirklich nur Google-Suche „SQL SELECT und UPDATE“ Abfragen, aber:

es zu wählen, müssen Sie eine Abfrage verwenden, alle Informationen zu diesem einzigartigen ID zugeordnet zu wählen (die Sie haben sollte ?).

Dann laden Sie es in eine DataTable. Jedem Steuerelement wird sein Wert unter Verwendung der relevanten DataTable Daten zugewiesen.

Dann wird eine Aktualisierungsabfrage ausgeführt, wenn Sie auf Speichern/Aktualisieren klicken, um sie zu aktualisieren.

Beispiel SELECT Abfrage

Dim Dt As New DataTable 

    Using Da = New OleDbDataAdapter("SELECT * FROM Your_Table WHERE uniqueID=?", connectionstring) 
     Da.SelectCommand.Parameters.Add("@ID", OleDbType.Integer).Value = IDvariable 
     Da.Fill(Dt) 
    End Using 

Dann müssen Sie die DataAdapter verwenden, in dem Formular-Steuerelemente zu füllen, zum Beispiel:

txtFirstName.Text = Dt.Rows(0).Item("firstName") 

Dann wird eine UPDATE Abfrage

Try 
     Dim Dc As New OleDbCommand 
     Dc.Connection = connectionstring 
     Dc = New OleDb.OleDbCommand("UPDATE Your_Table SET column_1 = ?, column2 = ? WHERE uniqueID=?", connectionstring) 
     Dc.Parameters.Add("@column1", OleDbType.DataType).Value = control1.Text 
     Dc.Parameters.Add("@column2", OleDbType.DataType).Value = control2.Text 

     Dc.Parameters.Add("@uniqueID", OleDbType.Integer).Value = uniqueID 

     Dc.ExecuteNonQuery() 

     MsgBox("Edit Successful") 

    Catch ex As Exception 
     MsgBox("Failed to update data, refer to error log") 

    End Try 
Verwandte Themen