Нет строки в позиции 0 ошибка 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 ответа
Решение
Индексы начинаются с нуля. Итак, первый ряд на 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
свойство, если оно уже заполнено. Тогда вам не нужно получать количество строк из базы данных с помощью адаптера данных:
For x As Integer = 0 To modDataset.modules.Rows.Count - 1
Dim column As String = modDataset.modules.Rows(x)(0).ToString
MsgBox(column)
Next
Убедитесь, что в вашем наборе данных (модулях) есть строки:
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