У меня есть две таблицы в локальной базе данных, называемые химикатами и группами соответственно. У меня также есть два комбинированных списка, которые называются 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