每次我尝试获取每一行的第一列值时都会收到此错误。
Dim modAdapter As New StudentSystemDBDataSetTableAdapters.modulesTableAdapter
Dim modDataset As New StudentSystemDBDataSet
If modAdapter.ModulesCountRow() <> 0 Then
For x As Integer = 0 To modAdapter.ModulesCountRow()
Dim column As String = modDataset.modules.Rows(x)(0).ToString
MsgBox(column)
Next
End If`
答案 0 :(得分:0)
索引为零。因此,第一行位于modDataset.modules.Rows(0)
,最后一行位于modDataset.modules.Rows(modAdapter.ModulesCountRow() - 1)
。
所以你必须减去1:
For x As Integer = 0 To modAdapter.ModulesCountRow() - 1
Dim column As String = modDataset.modules.Rows(x)(0).ToString
MsgBox(column)
Next
修改:您也可以使用DataTable.Rows.Count
属性(如果已填充)。然后,您不需要使用dataadapter从数据库获取行计数:
For x As Integer = 0 To modDataset.modules.Rows.Count - 1
Dim column As String = modDataset.modules.Rows(x)(0).ToString
MsgBox(column)
Next
答案 1 :(得分:0)
确保您的数据集(模块)包含行:
If modDataset.modules.Rows.Count > 0 AndAlso modAdapter.ModulesCountRow() <> 0 Then
For x As Integer = 0 To modAdapter.ModulesCountRow()
Dim column As String = modDataset.modules.Rows(x)(0).ToString
MsgBox(column)
Next
End If