为什么我得到“行/列没有数据”?有数据时出错? [英] Why do I get "No data exists for the row/column" error when I do have data?

查看:75
本文介绍了为什么我得到“行/列没有数据”?有数据时出错?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

发生的意思是,当双击数据库中的一行时,程序应将数据从该行中拉出并填写在文本框中。这是我到目前为止的代码,当双击行时,我得到行/列没有数据。

What's meant to happen is that when the a row is double clicked on the database the program should pull the data out of that row and fill it in the text boxes. This is the code I have so far, when double clicking a row I get "No data exists for the row/column".

谢谢,

Private Sub dtg_Email_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtg_Email.DoubleClick
    Dim conn As New OleDbConnection
    Dim cmd As New OleDbCommand
    Dim dr As OleDbDataReader

    Try
      conn = New OleDbConnection(Get_Constring)
        conn.Open()
        cmd.Connection = conn
        cmd.CommandText = CommandType.Text
        ReadPlayerID = Team_Database.PlayerID
        cmd.CommandText = "SELECT Surname, Forename, Email FROM PlayerDatabase WHERE ID = " & ReadPlayerID
        dr = cmd.ExecuteReader


        Me.txt_Surname.Text = IIf(Not IsDBNull(dr("Surname")), dr("Surname"), "")
        Me.txt_Forename.Text = IIf(Not IsDBNull(dr("Forename")), dr("Forename"), "")
        Me.txt_Email.Text = IIf(Not IsDBNull(dr("Email")), dr("Email"), "")

    Catch ex As Exception
        MsgBox(ErrorToString)
    Finally
        conn.Close()
    End Try
End Sub

推荐答案

您需要调用 dr.Read 前进到下一个(在这种情况下为第一个)记录,然后才能从第一行中获取任何数据。

You need to call dr.Read to advance to the next (first in this case) record before you can grab any data from the first row.

dr = cmd.ExecuteReader

dr.Read

Me.txt_Surname.Text = IIf(Not IsDBNull(dr("Surname")), dr("Surname"), "")

这篇关于为什么我得到“行/列没有数据”?有数据时出错?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆