2016-07-15 13 views
0

Ich habe ein Problem, wenn ich auf Artikel in Datagridview klicken, um weitere Informationen zu erhalten! OK ? mein Code:Fehler in Daten aus Access-Datenbank zu DataGridView Vb.Net

Try 
     If (DataGridView1.Rows.Count = 0) Then Return 
     TextBox1.Text = String.Empty 
     TextBox2.Text = String.Empty 
     TextBox3.Text = String.Empty 
     TextBox4.Text = String.Empty 
     Dim id As String = DataGridView1(2, DataGridView1.SelectedRows(0).Index).Value 
     Dim dt As DataTable = New DBConnect().selectdata(String.Format("SELECT items.ClientName, items.ClientAddress, items.ClientPhone, items.ClientCredit, items.ClientLastPay FROM items where items.ClientID = {0}", id)) 
     TextBox1.Text = dt.Rows(0)(0).ToString 
     TextBox2.Text = dt.Rows(0)(1).ToString 
     TextBox3.Text = dt.Rows(0)(2).ToString 
     TextBox4.Text = dt.Rows(0)(3).ToString 
     dt.Dispose() 
     dt = Nothing 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 

durch den Fehler Debuggen in dieser Zeile ist:

Dim id As String = DataGridView1(2, DataGridView1.SelectedRows(0).Index).Value.ToString

das ist meine vollständige Quellcode http://up.dev-point.com/download279606.html

+0

Was ist mit diesem Link? –

+0

das ist der Quellcode :) – barbou

Antwort

0

Sie versuchen die Datagridview wie ein Array zuzugreifen, Wenn Sie angeben müssen, dass Sie in den Zeilen und Spalten suchen. Statt

DataGridView1(2, DataGridView1.SelectedRows(0).Index).Value 

können Sie

DataGridView1.Columns(2).Cells(DataGridView1.SelectedRows(0).Index).Value 

jedoch schreiben, auf SelectedRows Berufung ist nicht der beste Weg, es zu tun. Was passiert, wenn der Benutzer versehentlich einige Zeilen ausgewählt und auf die untere geklickt hat?

Angenommen, Ihr Code in einem Cellclick-Handler mit

(sender As Object, e As DataGridViewCellEventArgs) 

sollten Sie die DataGridViewCellEventArgs verwenden zu sagen, welche Zeile sind Sie auf sich stattdessen auf SelectedRows der Berufung:

Dim id As String = DataGridView1(e.RowIndex).Cells(2).Value 
+0

Ich habe einen Fehler in diesem Code: 'DataGridView1.Columns (2) .Cells (DataGridView1.SelectedRows (0) .Index) .Value ** 'Cells' ist kein Mitglied von 'System .Windows.Forms.DataGridViewColumn '** – barbou

+0

und auch ich habe Fehler in diesem Code 'Dim id als String = DataGridView1 (e.RowIndex) .Cells (2) .Value' Fehler: ** Überladungsauflösung fehlgeschlagen, weil kein' Item 'akzeptiert diese Anzahl von Argumenten. ** – barbou