【发布时间】:2013-07-13 11:34:35
【问题描述】:
我有以下函数来检查我的 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,我做错了什么?
【问题讨论】:
-
你在数据库中执行过同样的语句吗?它返回什么。我对这种方法也有保留。您应该检查用户 ID 而不是用户名。多个用户可以拥有相同的用户名,而用户 ID 将是唯一的。
-
另外:在 SQL 中使用
IF EXISTS()....方法在性能方面会更好。想象一下,您的表中有 1 亿用户;要检查给定用户的存在,根据您的方法,必须扫描 1 亿 行以计算该用户出现的次数。IF EXISTS()方法可以在找到匹配用户后立即停止扫描......
标签: c# sql sql-server sql-server-2008-r2