如何检查数据库的User表中是否存在用户名?

时间:2011-12-03 03:53:57

标签: c# asp.net sql-server-2008-r2

我正在尝试为Web应用程序的管理员开发一个简单的用户管理系统。我正在使用ASP.NET Wizard Control执行此任务。 我只是放了一个用于编写用户名的TextBox,当管理员点击Next按钮时,系统应该检查数据库中是否存在用户名。如果它存在,系统应该在管理员的占位符中显示他的信息。

我正在努力完成这项任务。我在代码隐藏中执行了以下操作:

//For checking the user
if (Request.QueryString["Username"] != null)
{
    String strUserName = Request.QueryString["Username"];

    //Check userName Here
    String strReturnStatus = "false";

    if (CheckUsername(Request.QueryString["Username"]) == true)
    {
        strReturnStatus = "true";
    }
    Response.Clear();
    Response.Write(strReturnStatus);
    Response.End();
}

现在,我想创建一个名为CheckUsername的第二个方法,我不知道应该把它放在其中:

private bool CheckUsername(string p)
{
    //throw new NotImplementedException();
} 

看起来这个问题很简单或者很愚蠢,但我是一个新开发者,我无法找到一个可以帮助我解决这个问题的简单资源。

2 个答案:

答案 0 :(得分:3)

我相信以下方法就是你所追求的:

private bool CheckUsername(string username)
{
    string connString = "";
    string cmdText = "SELECT COUNT(*) FROM Users WHERE Username = @username";

    using(SqlConnection conn = new SqlConnection(connString))
    {
         conn.Open(); // Open DB connection.

         using(SqlCommand cmd = new SqlCommand(cmdText, conn))
         {
             cmd.Parameters.AddWithValue("@username", username)); // Add the SQL parameter.

             int count = (int)cmd.ExecuteScalar();

             // True (> 0) when the username exists, false (= 0) when the username does not exist.
             return (count > 0);
         }
    }
}

您可以填写空白(例如,指定连接字符串connString并修改cmdText)。我在cmdText中指定的SQL查询是在典型用户管理系统的假设下,您可以在其中使用公用表名和列; Users(表格)和Username(列)。由于您没有指定结构,因此很难证明其合理性。修改它以满足您的应用需求。

在大多数情况下,计算存在多少记录的方法很常见。我经常使用这种检查/验证方法的方法。

有关我在上面示例中使用的代码(类)的更多信息:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.aspx

我还建议您阅读有关数据访问(不是该链接)的信息。我会告诉你的。

答案 1 :(得分:0)

我在代码中调整了一些内容:

if (!string.IsNullOrEmpty(Request.QueryString["Username"]))
{
    ---
    ---

    if (CheckUsername(Request.QueryString["Username"]))
    {
        ---
     ---
}

请参阅此链接作为您的任务教程:http://www.codeproject.com/KB/database/sql_in_csharp.aspx