选择多列时出现 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 错误“行/列不存在数据”的主要内容,如果未能解决你的问题,请参考以下文章

选择值时出现休眠错误

Hibernate - 加入策略选择了太多列

为啥单击按钮时出现“无法识别的选择器”错误?

选择中奖彩票时出现数组错误。

选择项目时出现水平集合视图错误

按下按钮时出现无法识别的选择器错误