![](/img/trans.png)
[英]SQL UPDATE isn't updating the database, is there something wrong with my SQL statement?
[英]What's wrong with my SQL statement, something isn't working
我有一个非常简单的方法,称为检查用户密码是否正确。 对为什么它不起作用有任何帮助吗? 这是用于Microsoft SQL Server。
public bool UserNameExists()
{
using (SqlConnection con = new SqlConnection("CONNECTION STRING AQUI!"))
{
con.Open();
try
{
using (SqlCommand command = new SqlCommand(string.Format("SELECT * FROM Policia WHERE NumeroPlaca = '{0}' AND Password = '{1}'", Session.Contents["username"], Session.Contents["password"]), con))
{
SqlDataReader reader = command.ExecuteReader();
if (reader.FieldCount > 0)
{
return true;
}
else
{
return false;
}
}
}
catch
{
}
return false;
}
}
您也可以这样做:
"SELECT COUNT(*) FROM Policia..."
接着:
int result = Convert.ToInt32(command.ExecuteScalar());
if (result > 0)
{
return true;
}
else
{
return false;
}
完整代码:
public bool UserNameExists()
{
int result = int.MinValue;
using (SqlConnection connection = new SqlConnection(_connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "SELECT COUNT(*) FROM Policia WHERE NumeroPlaca = @username AND Password = @password";
command.Parameters.Clear();
command.Parameters.Add("@username", SqlDbType.VarChar).Value = Session.Contents["username"];
command.Parameters.Add("@password", SqlDbType.VarChar).Value = Session.Contents["password"];
result = Convert.ToInt32(command.ExecuteScalar());
}
if (result > 0)
{
return true;
}
{
return false;
}
}
FieldCount获取当前行中的列数,该列数始终为非零。 您正在寻找结果集中的行数。 使用HasRows属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.