【发布时间】:2017-06-29 11:06:31
【问题描述】:
我正在创建一个连接到 SQL 数据库的桌面应用程序。由于某种原因,我无法连接到数据库,连接无限期地挂起而没有给出错误(没有像它应该的那样超时)。我正在为我的数据库使用 XAMPP。我已经在谷歌上广泛搜索了我尝试过的问题,例如更改连接字符串和关闭防火墙。
这是我的代码:
string connectionString = "Server=localhost;Database=typewrite;Uid=root;Pwd=";
public int signIn(string username, string password)
{
int signinNum = -1;
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
try
{
conn.Open(); // here is the problem
}
catch (MySqlException ex)
{
Debug.WriteLine(ex.ToString());
return signinNum;
}
using (MySqlCommand cmd = conn.CreateCommand())
{
try
{
cmd.CommandText = @"SELECT 'USER_id' WHERE USER_name = @name AND pass = @passw";
cmd.Parameters.AddWithValue("@name", username);
cmd.Parameters.AddWithValue("@passw", password);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
signinNum = reader.GetInt32(0);
}
}
catch (MySqlException ex)
{
return signinNum;
}
}
}
return signinNum;
}
我已经尝试过不同的变体,但没有占上风。我知道我应该使用 mutli thredding,这样它就不会停止我的应用程序,我想在进一步操作之前获得与数据库的连接。
除此之外,我之前也做过类似的事情,并且没有问题。
【问题讨论】:
-
永远不要将密码存储为纯文本
-
并没有真正解决问题,但我非常同意。
-
我知道我不打算将密码存储在平面文本中,这是仅用于测试连接的代码。