【C#】另一種mysql登入驗證方法
阿新 • • 發佈:2019-02-07
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+"'"; //直接搜尋使用者輸入的使用者名稱中的表 如果沒有判斷登入失敗
所以說靈活運用才是真