我有以下函数来检查我的SQL表中是否存在用户
private static bool userexists(string user)
{
bool userexists = false;
SqlCommand c = new SqlCommand("SELECT COUNT(*) from UserTable where Username = @user");
c.Parameters.Add(new SqlParameter("@user",user));
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.connectionString))
{
userexists = (bool)c.ExecuteScalar();
return userexists;
}
}
即使用户存在,也会返回false
,我做错了什么?
答案 0 :(得分:3)
更改此行:
userexists = (bool)c.ExecuteScalar();
到此:
userexists = (int32)c.ExecuteScalar() > 0;
答案 1 :(得分:3)
由于你要取回一个号码,你应该这样做并添加条件以获得bool
结果
userexists = (int) c.ExecuteScalar() > 0;
答案 2 :(得分:0)
select CASE WHEN Count(*) > 0 THEN 1 ELSE 0 END as UserExists from.....
答案 3 :(得分:0)
您可以通过
解决问题 userexists = (int)c.ExecuteScalar() > 0.
但是,我也对这种方法有所保留。您应该检查用户ID而不是用户名。多个用户可以拥有相同的用户名,而userid将是唯一的。