2016-07-15 77 views
0

我有一个错误,当点击从DataGridView一个项目加载所有informaation关于这个项目的一些文本框, 我的代码是:访问数据库的Visual Basic

Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick  
    otherdata() 
    End Sub 
Sub otherdata() 
    Try 
     If (DataGridView1.Rows.Count = 0) Then Return 
     FlatTextBox1.Text = String.Empty 
     FlatTextBox2.Text = String.Empty 
     FlatTextBox3.Text = String.Empty 
     FlatTextBox4.Text = String.Empty 
     Dim id As Integer = DataGridView1(1, DataGridView1.SelectedRows(0).Index).Value.ToString 
     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)) 
     FlatTextBox1.Text = dt.Rows(0)(0).ToString 
     FlatTextBox2.Text = dt.Rows(0)(1).ToString 
     FlatTextBox3.Text = dt.Rows(0)(2).ToString 
     FlatTextBox4.Text = dt.Rows(0)(3).ToString 
     dt.Dispose() 
     dt = Nothing 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
End Try  
End Sub    

错误是一个消息说, 指数超出限制。它不能是负面的,必须小于集合的大小。无参数:指数

+0

尝试:<= 0一个DataGridView包含-1行加列前。 – jdweng

+0

我怎么能这样做?举个例子吧! – barbou

+1

如果(DataGridView1.Rows.Count <= 0)然后返回 – jdweng

回答

0

你应该附上FlatTextBoxX的分配与if语句:

If dt.Rows.Count > 0 Then 
     FlatTextBox1.Text = dt.Rows(0)(0).ToString 
     FlatTextBox2.Text = dt.Rows(0)(1).ToString 
     FlatTextBox3.Text = dt.Rows(0)(2).ToString 
     FlatTextBox4.Text = dt.Rows(0)(3).ToString 
End If 
+0

即时通讯试试吧,它dosnt工作:( – barbou

+0

@barbou什么是新的错误信息? – Grace

+0

感谢它的工作完美 – barbou