我得到这个错误,打印出if语句
索引超出了数组的范围
代码:
Private Sub radsingle_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radsingle.CheckedChanged
With comDB
.CommandText = SQL
rdDB = .ExecuteReader
End With
While rdDB.Read
If rdDB(1).ToString = txtptp.SelectedItem.ToString Then
txtcdays.Text = rdDB(2).ToString.Trim
'Radmulti.Checked = False
End If
End While
rdDB.Close()
End Sub
我在这段代码中有什么要改变的吗??
答案 0 :(得分:1)
使用DataReader的正确方法将是以下几点:
If DataReader.HasRows Then
While DataReader.Read()
If rdDB.Item("ColumnName1").ToString = txtptp.SelectedItem.ToString Then
...
End If
End While
End If
通过这种方式,您可以检查DataReader是否包含行,还可以避免对索引产生混淆。
当然,根据您发布的代码,不清楚SQL
变量的含义。可能,您的查询没有返回任何行。
答案 1 :(得分:0)
尝试使用列名而不是列索引