IndexOutOfRangeException, ссылка на таблицу в локальной базе данных - PullRequest
0 голосов
/ 25 марта 2020

У меня есть две таблицы в локальной базе данных, называемые химикатами и группами соответственно. У меня также есть два комбинированных списка, которые называются CbxName и CbxGroup. Я хочу заполнить списки со строками столбцов Group и Chemical_Type. Чтобы сделать это sh, я хочу связать химические вещества с ChxName и группы с CbxGroups. SQLadapter определен как SQLDA, а набор данных определен как SQLDS.
В приведенном ниже утверждении, также упоминаемом в коде, выдается ошибка «Не удается найти таблицу 1». с окном с надписью «IndexOutOfRangeException было необработанным».

For Each r As DataRow In SQL.SQLDS.Tables(0).Rows

При исключении групп CbxGroups и Groups приложение работает нормально. Я хочу знать, что я делаю неправильно. Есть ли способ ссылаться на таблицы отдельно, и если да, то можете ли вы показать мне, как это можно исправить здесь?

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'Start method'
        GetChems()
        GetGroup()
        'Set Textbox to value'
        TextBox1.Text = "40"
    End Sub
    Private Sub GetGroup()
                CbxGroup.Items.Clear()
        SQL.ExecQuery("SELECT Group FROM Groups")
        If SQL.RecordCount > 0 Then
            For Each rs As DataRow In SQL.SQLDS.Tables(1).Rows 'Here is the problem'
                CbxGroup.Items.Add(rs("Group"))
            Next
            CbxGroup.SelectedIndex = 0
        ElseIf SQL.Exception <> "" Then
            MsgBox(SQL.Exception)
        End If
    End Sub

    Private Sub GetChems()
        CbxName.Items.Clear()
        SQL.ExecQuery("SELECT Chemical_Type FROM Chemicals")
        If SQL.RecordCount > 0 Then
            For Each r As DataRow In SQL.SQLDS.Tables(0).Rows 'Here is the problem'
                CbxName.Items.Add(r("Chemical_Type"))
            Next
            CbxName.SelectedIndex = 0
        ElseIf SQL.Exception <> "" Then
            MsgBox(SQL.Exception)
        End If
    End Sub

    Private Sub GetChem(ByVal Chem As String)
        SQL.AddParam("@Chemicals", Chem)
        SQL.ExecQuery("SELECT Chemical_Name FROM Chemicals WHERE Chemical_Type = @Chemicals")
        If SQL.RecordCount > 0 Then TxtWeight.Text = SQL.SQLDS.Tables(0).Rows(0).Item("Chemical_Name")
    End Sub
    Private Sub txtWeight_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CbxName.SelectedIndexChanged
        GetChem(txtWeight.Text)
    End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...