Как проверить, существует ли имя пользователя в таблице пользователей базы данных или нет? - PullRequest
0 голосов
/ 03 декабря 2011

Я пытаюсь разработать простую систему управления пользователями для администратора веб-приложения. Я использую ASP.NET Wizard Control для этой задачи. Я просто поставил TextBox для записи имени пользователя, и когда администратор нажимает кнопку «Далее», система должна проверить, существует ли имя пользователя в базе данных или нет. Если он существует, система должна отображать его информацию в качестве заполнителя для администратора.

Я борюсь с этой задачей. Я сделал следующее в коде позади:

//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 ]

3 голосов
/ 03 декабря 2011

Я считаю, что вам нужен следующий метод:

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). SQL-запрос, который я указал в cmdText, подразумевает типичную систему управления пользователями, в которой у вас есть общие имена таблиц и столбцы; Users (таблица) и Username (столбец). Это трудно оправдать, так как вы не указали структуру. Измените его в соответствии с вашими требованиями.

Метод подсчета количества существующих записей в большинстве случаев довольно распространен. Я часто использую этот метод проверки / проверки правильности вещей.

Дополнительная информация о коде (классах), который я использовал в моем примере выше:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.aspx

Я также советую прочитать о доступе к данным (не по этой ссылке). Я оставлю тебя в этом.

0 голосов
/ 03 декабря 2011

Я настраиваю некоторую точку в вашем коде:

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

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

Обратитесь по этой ссылке в качестве учебного пособия для вашей задачи: http://www.codeproject.com/KB/database/sql_in_csharp.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...