2016-07-15 3 views
0

詳細情報を取得するには、DataGridViewで項目をクリックすると問題が発生します。 OK ? 私のコード:エラーをデバッグすることによりアクセスデータベースからデータグリッドビュー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 

はこのラインである:

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

私の完全なソースコードのthats

http://up.dev-point.com/download279606.html

+0

そのリンクとは何ですか? –

+0

thats the source code :) – barbou

答えて

0

あなたは配列のようにDataGridViewのにアクセスしようとしているが、あなたが行と列を見ていることを指定する必要があるとき。代わりに

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

のあなたはSelectedRowsに頼ることは、それを行うための最善の方法ではありません、しかし、

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

を書くことができます。ユーザーが間違っていくつかの行を選択し、下の行をクリックした場合はどうなりますか?

あなたのコードは、あなたがあなたの代わりにSelectedRowsに頼るのにしている何行伝えるためにDataGridViewCellEventArgsを使用する必要があります

(sender As Object, e As DataGridViewCellEventArgs) 

でCellClickハンドラにされると仮定すると:

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

このコードにエラーがあります: 'DataGridView1.Columns(2).Cells(DataGridView1.SelectedRows(0).Index).Value' ** 'Cells'は 'System .Windows.Forms.DataGridViewColumn '** – barbou

+0

また、このコードでエラーが発生しました。 'Dim id As String = DataGridView1(e.RowIndex).Cells(2).Value'エラー:**アクセス不可能なItem 'はこの数の引数を受け入れます。** – barbou

関連する問題