1. 程式人生 > >【C#】另一種mysql登入驗證方法

【C#】另一種mysql登入驗證方法

private void button1_Click(object sender, EventArgs e)
        {
            MySQLConnectionString tConnStr = new MySQLConnectionString("localhost", "user", "root", "zxc123123110", 3306);
                 MySQLConnection tConn = new MySQLConnection(tConnStr.AsString);
            try
            {
                tConn.Open();  //開啟連線
MySQLCommand cmd4 = new MySQLCommand("set names utf8", tConn); cmd4.ExecuteNonQuery(); string tCmd = "select * from user"; MySQLCommand cmd = new MySQLCommand(tCmd, tConn); //在定義的tConn物件上執行查詢命令 MySQLDataReader tReader = cmd.ExecuteReaderEx(); if
(tReader.Read()) { if ((string)tReader["username"].ToString().Trim() == textBox1.Text && (string)tReader["password"].ToString().Trim() == textBox2.Text) { this.Text = "ok"; } }

下面是我的資料庫表
id username password email
1 nihao 123123
2 wya 123123
我在除錯的時候輸入第二個id 的賬號和密碼 發現不顯示成功資訊 而我輸入第一個id的賬號和密碼的時候卻成功的返回了資訊這就使我很納悶 之後我想到我判斷

if (tReader.Read())//一行顯示一條記錄

這就很容易解釋了 在執行的時候不管你有多少條資料都只顯示id1裡面的欄位資訊 於是加以修改mysql語句就可以成功完成驗證

string tCmd = "select * from user";//mysql語句 讀user表

改為

string tCmd = "select * from user where username=" + "'"+textBox1.Text+"'"; //直接搜尋使用者輸入的使用者名稱中的表 如果沒有判斷登入失敗

所以說靈活運用才是真