Database 在VB.net上如何将数据库中的数据导入文本框

Database 在VB.net上如何将数据库中的数据导入文本框,database,vb.net,Database,Vb.net,嗨,我是Visual basic新手。我有一个按钮,当它点击时,它会通过用户输入的ID找到学生,并将数据输出到文本字段。我不太确定我是否做对了。因为我得到了这个错误[image]>> 顺便说一句,这是我到目前为止的代码。有人能帮我吗?谢谢 cmd.CommandText = "Select * from Student where Student_id = '" & id.Text & "'" cmd.Connection = db

嗨,我是Visual basic新手。我有一个按钮,当它点击时,它会通过用户输入的ID找到学生,并将数据输出到文本字段。我不太确定我是否做对了。因为我得到了这个错误[image]>>

顺便说一句,这是我到目前为止的代码。有人能帮我吗?谢谢

        cmd.CommandText = "Select * from Student where Student_id = '" & id.Text & "'"
        cmd.Connection = db

        dr = cmd.ExecuteReader

        Try
            dr.Read()
            id.Text = dr.GetValue(0)
            Lname.Text = dr.GetValue(1)
            Fname.Text = dr.GetValue(2)
            Mname.Text = dr.GetValue(3)
            datet.Text = dr.GetValue(4)
            age.Text = dr.GetValue(5)
            male.Text = dr.GetValue(6)
            female.Text = dr.GetValue(7)
            status.Text = dr.GetValue(8)
            staddress.Text = dr.GetValue(9)
            cityAdd.Text = dr.GetValue(10)
            dr.Close()

        Catch ex As Exception
            MsgBox("" + ex.Message)
            dr.Close()
        End Try
改为:

if IsNumeric(id.text) Then
cmd.CommandText = "Select * from student where Student_id=@p1"
cmd.Prepare
cmd.Parameters.AddWithValue("@p1", id.text)
dr = cmd.ExecuteReader
....
Else
Exit Sub
End If
你可以这样做,或者

 dr = cmd.ExecuteReader

    Try
       with dr
        .Read()
        id.Text = .GetValue(0)
        end with
        dr.Close()

更容易阅读

改为:

if IsNumeric(id.text) Then
cmd.CommandText = "Select * from student where Student_id=@p1"
cmd.Prepare
cmd.Parameters.AddWithValue("@p1", id.text)
dr = cmd.ExecuteReader
....
Else
Exit Sub
End If
你可以这样做,或者

 dr = cmd.ExecuteReader

    Try
       with dr
        .Read()
        id.Text = .GetValue(0)
        end with
        dr.Close()


更易于阅读……

如果您使用的是MySQL数据库,请首先添加一个引用 打赌吧。班级

Dim Connection As MySqlConnection
Dim command As MySqlCommand
把这个放到你的文本框里

Connection = New MySqlConnection
Connection.ConnectionString = "Server=localhost;port=3306;userid=root;password=root;database=databasename"
Dim reader As MySqlDataReader
根是默认的

Try
  Connection.Open()
  Dim query As String
  query= "Select * from Databasename.tablename where fieldname='" & textbox1.text & "'"
  Command = New MySqlCommand(query, Connection)
  reader = Command.ExecuteReader
  While reader.Read
    Dim sname As String
    sname = reader.GetString("Fieldname")
    textbox1.Items.Add(sname)
  End While
  Connection.Close()
Catch e MySqlException
  MsgBox (ex.Message)
Finally
  Connection.Dispose
End Try

如果您使用的是MySQL数据库,首先添加一个引用 打赌吧。班级

Dim Connection As MySqlConnection
Dim command As MySqlCommand
把这个放到你的文本框里

Connection = New MySqlConnection
Connection.ConnectionString = "Server=localhost;port=3306;userid=root;password=root;database=databasename"
Dim reader As MySqlDataReader
根是默认的

Try
  Connection.Open()
  Dim query As String
  query= "Select * from Databasename.tablename where fieldname='" & textbox1.text & "'"
  Command = New MySqlCommand(query, Connection)
  reader = Command.ExecuteReader
  While reader.Read
    Dim sname As String
    sname = reader.GetString("Fieldname")
    textbox1.Items.Add(sname)
  End While
  Connection.Close()
Catch e MySqlException
  MsgBox (ex.Message)
Finally
  Connection.Dispose
End Try

如果您使用的是Mysql数据库,请首先添加引用。添加MySql数据库的引用

  • 转到解决方案资源管理器,右键单击项目名称
  • 查找添加->引用

    一扇窗户将被打开

  • 在该窗口中,在“程序集”下选择“框架”
  • 右侧将显示一个列表,查找并选择Microsoft.VisualBasic.Compatibility.Data
  • 在扩展中,查找并添加MySql.Data和MSDATASRC
  • 单击“确定”

  • 如果您使用的是Mysql数据库,请首先添加引用。添加MySql数据库的引用

  • 转到解决方案资源管理器,右键单击项目名称
  • 查找添加->引用

    一扇窗户将被打开

  • 在该窗口中,在“程序集”下选择“框架”
  • 右侧将显示一个列表,查找并选择Microsoft.VisualBasic.Compatibility.Data
  • 在扩展中,查找并添加MySql.Data和MSDATASRC
  • 单击“确定”

  • 如果
    id.Text
    为空,则会出现错误;在构建SQL之前,您还需要将它包含的文本转换为数字。在以后的帖子中,实际的错误信息(它们是重要信息)而不是图片的链接我建议使用:
    如果不是isdbnull(dr.getvalue(0))
    。。。对于每一个,明显增加每一个的getvalue编号。未经请求的建议:继续并将
    dr.getvalue(n)
    更改为
    dr.getvalue(“nameOfColumn”)
    。这是一个更好的习惯。谢谢!我要检查一下。或者把它改成
    dr.item(“nameofcolumn”)
    稍微短一点。。。请参见下面的答案,如果
    id.Text
    为空,则会出现错误;在构建SQL之前,您还需要将它包含的文本转换为数字。在以后的帖子中,实际的错误信息(它们是重要信息)而不是图片的链接我建议使用:
    如果不是isdbnull(dr.getvalue(0))
    。。。对于每一个,明显增加每一个的getvalue编号。未经请求的建议:继续并将
    dr.getvalue(n)
    更改为
    dr.getvalue(“nameOfColumn”)
    。这是一个更好的习惯。谢谢!我要检查一下。或者把它改成
    dr.item(“nameofcolumn”)
    稍微短一点。。。见下面的答案