选择多列时“执行读取器”错误“行/列不存在数据”

时间:2013-01-22 22:17:53

标签: vb.net sql-server-ce

我正在尝试运行一个返回三列的简单查询但遇到错误,说明数据不存在但我确信它确实存在。

这是有问题的代码部分。

        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 个答案:

答案 0 :(得分:2)

您需要执行阅读器,然后使用reader.Read()

将其推进到下一条记录
Using reader = cmd.ExecuteReader()
    reader.Read()
    profileSchool = reader(0)
    profileCity = reader(1)
    profileState = reader(2)
End Using