2012-05-29 4 views
1

Я пытаюсь сделать страницу входа.ASP Count SQL Count метод

У меня есть таблица для моих пользователей, у которой есть четыре столбца.

идентификатор имя пользователя пароль администратора

У меня есть один пост, но я не могу войти Вот мой код:.

try 
    { 


     string strcon = System.Configuration.ConfigurationManager.ConnectionStrings["blogCS"].ToString(); 
     SqlConnection myConnection = new SqlConnection(); 
     myConnection.ConnectionString = strcon; 
     myConnection.Open(); 

     string strSql = "SELECT COUNT(*) FROM users WHERE username=' " + txtUsername + "' AND password='"; 
     SqlCommand command = new SqlCommand(strSql, myConnection); 
     int count = Convert.ToInt32(command.ExecuteScalar()); 
     myConnection.Close(); 

     if (count == 1) 
      Response.Redirect("index.aspx"); 
     else 
      lblStatus.Text = Convert.ToString(count); 

    } 

    catch (Exception k) 
    { 
     lblStatus.Text = k.Message; 
    } 
+1

Что он делает для 'txtUser name = "'; Пользователи DROP TABLE - «' Серьезно - пожалуйста, используйте параметризованные запросы. Остановитесь сейчас и добавьте это, затем вернитесь к этой проблеме. –

ответ

0

Здесь перерабатывается Код:

try 
    { 


     string strcon = System.Configuration.ConfigurationManager.ConnectionStrings["blogCS"].ToString(); 
     SqlConnection myConnection = new SqlConnection(); 
     myConnection.ConnectionString = strcon; 
     myConnection.Open(); 

     string strSql = "SELECT COUNT(id) FROM users WHERE username=' " + txtUsername + "' AND password='" + txtPassword + "'"; 
     SqlCommand command = new SqlCommand(strSql, myConnection); 
     int count = Convert.ToInt32(command.ExecuteScalar()); 
     myConnection.Close(); 

     if (count == 1) 
      Response.Redirect("index.aspx"); 
     else 
      lblStatus.Text = Convert.ToString(count); 

    } 

    catch (Exception k) 
    { 
     lblStatus.Text = k.Message; 
    } 
+0

только показывает 0 –

+0

- это то, что имя txtPassword правильно для вас поле с паролем –

+0

и ваша таблица заполнена любыми данными? –

-1
"SELECT COUNT(*) FROM users WHERE username=' " + txtUsername + "' AND password='"; 

Pass Пароль

+0

@down избиратель, не могли бы вы объяснить? – Kashif

+0

попробовал, но он все еще просто показывает 0 –

+0

Но странно, что ваш запрос работает, потому что вы передаете txtUsername (управление текстовыми полями) вместо txtUsername.Text (текст внутри текстового поля) – Kashif