选择多列时出现 ExecuteReader 错误“行/列不存在数据”
Posted
技术标签:
【中文标题】选择多列时出现 ExecuteReader 错误“行/列不存在数据”【英文标题】:ExecuteReader error when selecting multiple columns "No data exists for row/column" 【发布时间】:2013-01-22 22:17:53 【问题描述】:我正在尝试运行一个返回三列的简单查询,但我遇到了一个错误,指出数据不存在,尽管我很确定它确实存在。
这是有问题的代码部分。
cmd.CommandText = "SELECT school.id, school.city, school.state
FROM school,city
WHERE school.name = '" & SchoolLb.SelectedItem & "'
AND city.name = '" & CityLb.SelectedItem & "';"
'MessageBox.Show(cmd.ExecuteScalar)
myReader = cmd.ExecuteReader
profileSchool = myReader(0)
profileCity = myReader(1)
profileState = myReader(2)
学校列表框填充了当前在城市列表框中选择的城市中的学校,因此它们匹配。当我从 MessageBox.Show(cmd.ExecuteScalar)
中删除评论标签时,ExecuteScalar
运行并返回一条消息,显示正确记录的 ID。然而,当使用cmd.ExecuteReader
时,我得到了上面提到的错误。
感谢收看。
【问题讨论】:
【参考方案1】:您需要执行阅读器,然后使用reader.Read()
将其推进到下一条记录:
Using reader = cmd.ExecuteReader()
reader.Read()
profileSchool = reader(0)
profileCity = reader(1)
profileState = reader(2)
End Using
【讨论】:
谢谢先生。我有办法使用 vb.net 和数据库!以上是关于选择多列时出现 ExecuteReader 错误“行/列不存在数据”的主要内容,如果未能解决你的问题,请参考以下文章