當我點擊文本框上的有效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