【发布时间】:2014-10-09 05:42:36
【问题描述】:
我经常遇到这个超时问题。我一直在使用 MYSQL 数据库并在 Windows 应用程序上工作。我什至尝试过使用having子句,但遇到了同样的情况
public bool VerifyStock(string serialnumber)
{
con = new MySqlConnection(connstring);
string readData = "select * from Fn_Inventory where ModelNumber = '" + serialnumber + "'";
cmd = new MySqlCommand(readData, con);
cmd.Parameters.AddWithValue("@ModelNumber", serialnumber);
con.Open();
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
//while (dr.Read())
if (dr.Read())
{
decimal invquntity = Convert.ToDecimal(dr["AvailableQuantity"].ToString());
decimal quantity = Convert.ToDecimal(txtQuantity.Text);
decimal sinvquntity = invquntity - quantity;
if (sinvquntity >= 0)
{
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
else
{
return false;
}
con.Close();
}
【问题讨论】:
-
您应该始终使用parameterized queries。这种字符串连接对SQL Injection 攻击开放。并使用
usingstatement 处理您的数据库连接。