确定行是否存在的最佳方法

时间:2012-03-10 20:15:50

标签: c# sql sql-server database razor

我正在使用SQL Server和WebMatrix Razor语法来尝试确定用户名是否包含在名为Users的表中。

我希望拥有的逻辑是:

 bool usernameExists = db.QueryValue("SELECT Username from Users where Username = ?", username);
 if(usernameExists.IsEmpty()){ //username is not in table
    Response.Redirect("Register.cshtml");
 }

解决这个问题的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

最简单的可能是:

bool usernameExists = db.QueryValue("SELECT usernameExists = CASE WHEN EXISTS 
 (SELECT 1 FROM Users WHERE Username = ?) THEN 1 ELSE 0 END", username);

if (!usernameExists) { Response.Redirect("Register.cshtml"); }

虽然我严格来自SQL Server端。我不知道这是否是C#方面的最佳方法。

答案 1 :(得分:1)

一种方法是implement a custom membership provider,它根据您自己的用户表进行身份验证。然后,您的应用程序与用户存储的细节分离,这是一个很好理解的ASP.NET应用程序中的用户身份验证模型。