位置0错误TableAdapter没有行

时间:2014-09-18 14:11:54

标签: vb.net dataset tableadapter

每次我尝试获取每一行的第一列值时都会收到此错误。

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`

2 个答案:

答案 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