【发布时间】:2016-10-07 00:15:45
【问题描述】:
public bool loginpro(string loginas, string dept, string usnm, string pass)
{
try
{
string qrstr;
qrstr = "select * from login where loginas=='" + loginas + "',dept=='" + dept + "',usnm=='" + usnm + "',pass=='" + pass + "'";
Gencon.Open();
SqlCommand cmd = new SqlCommand(qrstr, Gencon);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
Gencon.Close();
if (dt.Rows.Count > 0)
{
return true;
}
}
catch (Exception e)
{
return false;
}
}
【问题讨论】:
-
如果 Rows.Count 为零怎么办?你有返回值吗?编译器(和 C# 规则)对此并不满意。
-
没有行需要返回false
-
顺便说一句,在解决了这个问题后,由于多种原因,您的查询完全错误。 == 是 C# 运算符,不是 SQL,WHERE 多个条件要用逻辑运算符连接,sql 文本是 Sql Injection 方。
标签: c# sql sqlcommand