我有一個在服務器中創建的數據庫,我添加了一行MySql查詢瀏覽器進行測試。該行可以通過PhpMyAdmin或MySql查詢瀏覽器查看。MySqlCommand:沒有行返回
但是,當我想我的計劃之內達到這個表,它說我沒有行(reader.HasRows = false
)
CS是PublicVariables
類
這裏連接字符串代碼
public static int checkuser(string myuser, string mypass)
{
try
{
using (MySqlConnection conn = new MySqlConnection(PublicVariables.cs))
{
string MypassMd5 = MakeMD5(mypass);
conn.Open();
if (conn == null)
Environment.Exit(0);
using (MySqlCommand cmd =
new MySqlCommand("SELECT username, password " + "FROM Users WHERE username = 'myuser'" ,conn))
{
using (MySqlDataReader reader = cmd.ExecuteReader())
{
//DateTime mytime = DateTime.Now ;
if (reader.HasRows)
{
if (Convert.ToString(reader["password"]) != MypassMd5)
{
reader.Close();
conn.Close();
return -1;
}
else
{
PublicVariables.UserId = Convert.ToString(reader["username"]);
PublicVariables.UserDegre = Convert.ToInt16(reader["userdegre"]);
conn.Close();
reader.Close();
return 1;
}
}
else
{
reader.Close();
conn.Close();
return 2;
}
}
}
}
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString());
}
return 0;
}
我的代碼有什麼問題?
請告訴我你正在使用的東西比MD5更安全的密碼哈希? MD5對此非常脆弱。 –
@Joel我會用另一個加密代替MD5,但是因爲我正在翻譯一個用turbo pascal編寫的舊程序,並且它在我的舊程序中,所以我使用了這個例子,但我認爲使用shasum或Bcrypt,正如您所建議的那樣 –