当我点击文本框上的有效ID号的按钮2时,它始终显示消息框“无效的ID号”但如果我删除IF
声明,它显示数据库记录,它工作正常,但我需要这个IF
声明,我认为这里的问题是dr.HasRows
,但我不知道该怎么把。VB.NET:无法读取MySQL数据读取器的数据库记录dr.HasRows
Imports MySql.Data.MySqlClient
Public Class Form16
Private Sub Form16_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim con As New MySqlConnection("server=localhost;user id=root;password=root;database=db")
Dim DataSet1 As New DataSet
Dim dr As MySqlDataReader
Dim da As New MySqlDataAdapter
Dim cmd As New MySqlCommand
con.ConnectionString = "server = localhost; user id = root;password=root; database = db"
cmd.Connection = con
con.Open()
cmd.CommandText = "select * from voter where idn='" & TextBox1.Text & "'"
dr = cmd.ExecuteReader
con.Close()
da.SelectCommand = cmd
da.Fill(DataSet1, "db")
If dr.HasRows Then
Label2.DataBindings.Add("text", DataSet1, "db.fname")
Label10.DataBindings.Add("text", DataSet1, "db.mi")
Label11.DataBindings.Add("text", DataSet1, "db.lname")
Label12.DataBindings.Add("text", DataSet1, "db.yr")
Label13.DataBindings.Add("text", DataSet1, "db.sec")
Label14.DataBindings.Add("text", DataSet1, "db.vstatus")
Else
MessageBox.Show("Invalid ID No.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Label2.DataBindings.Clear()
Label10.DataBindings.Clear()
Label11.DataBindings.Clear()
Label12.DataBindings.Clear()
Label13.DataBindings.Clear()
Label14.DataBindings.Clear()
End Sub
End Class
'选择从选民那里IDN = ' “&TextBox1.Text&”''你是开放的SQL注入*。使用参数。除此之外,如果您仍然使用数据集,为什么还要使用数据库?你可以通过这种方式访问你填写的表格:'Dim db As DataTable = DataSet1.Tables(“db”)',它是通过'db.Rows'的行。 –
对不起,我只是一个初学者在vb.net,我真的不知道如何去做你所说的。你能解释更多吗? –
是一个数字?如果是这样删除报价,以便你有... idn =“&TextBox1.Text ....如Tim提到你应该学会使用参数。 – Mych