【问题标题】:ExecuteReader error when selecting multiple columns "No data exists for row/column"选择多列时出现 ExecuteReader 错误“行/列不存在数据”
【发布时间】: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 时,我得到了上面提到的错误。

感谢收看。

【问题讨论】:

    标签: vb.net sql-server-ce


    【解决方案1】:

    您需要执行阅读器,然后使用reader.Read()将其推进到下一条记录:

    Using reader = cmd.ExecuteReader()
        reader.Read()
        profileSchool = reader(0)
        profileCity = reader(1)
        profileState = reader(2)
    End Using 
    

    【讨论】:

    • 谢谢先生。我有办法使用 vb.net 和数据库!
    猜你喜欢
    • 2019-06-23
    • 2020-05-20
    • 1970-01-01
    • 2020-09-22
    • 2017-02-09
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 2016-06-20
    相关资源
    最近更新 更多