Vb.net 错误:索引超出范围,无法读取表的最后一行?
我正在使用VisualStudio2010。 我想从access数据库中获取数据并在datagridview中显示,但所有数据都无法获取,具体来说,我有三行数据,但只有两行正在读取。。。 最后一行无法读取Vb.net 错误:索引超出范围,无法读取表的最后一行?,vb.net,ms-access,datagridview,vb.net-2010,Vb.net,Ms Access,Datagridview,Vb.net 2010,我正在使用VisualStudio2010。 我想从access数据库中获取数据并在datagridview中显示,但所有数据都无法获取,具体来说,我有三行数据,但只有两行正在读取。。。 最后一行无法读取 Sub FillAttendance() Dim dt As New DataTable Dim sqlCmd As OleDbCommand Dim adapter As New OleDbDataAdapter con1.Co
Sub FillAttendance()
Dim dt As New DataTable
Dim sqlCmd As OleDbCommand
Dim adapter As New OleDbDataAdapter
con1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\bunifu.mdb;Jet OLEDB:Database Password='kt2019';"
Try
Dim status As String = "Active"
Dim ssql As String = String.Empty
ssql = "SELECT memberid, membername FROM members WHERE company='" & My.Settings.company & "' AND status='" & status & "'"
If con1.State = ConnectionState.Closed Then con1.Open()
sqlCmd = New OleDbCommand(ssql, con1)
adapter.SelectCommand = sqlCmd
adapter.Fill(dt)
adapter.Dispose()
sqlCmd.Dispose()
con1.Close()
Form1.attendancenew.Rows.Clear()
Form1.attendancenew.Rows.Add()
For i As Integer = 0 To dt.Rows.Count - 1 '{Im getting error on this line}
With Form1.attendancenew.Rows(i)
.Cells(0).Value = dt.Rows(i)("memberid").ToString()
.Cells(1).Value = dt.Rows(i)("membername").ToString()
End With
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
结果错误显示:索引超出范围
我尝试了很多可能性,但都失败了。您应该将datagridview绑定到datatable,而不是遍历datatable中的行。感谢您的回复,我只想要表中的一些行和列,我不想显示完整的数据。根据您使用的代码,不是MySQL,而是ms access。已更正产品标签。您所说的获取错误的语句不包含索引。错误似乎更可能出现在下面三行中的一行。例如:
Form1.attendancenew
可能不包含与dt
相同的行数。@AmarSingh如果您只需要一些行,请修改您的SELECT
查询,使其仅包含您希望在结果集中看到的行。