Свойство Datareader has rows возвращает false

#asp.net

#asp.net

Вопрос:

Я пытаюсь проверить, существует ли имя пользователя или нет. Я использую объект XMLHttpRequest на странице html и отправляю значения имени пользователя и пароля на страницу aspx по умолчанию.Но когда я уточняю код.Ничего не происходит.Я имею в виду, что после отладки нет сообщения об исключении или чего-либо еще, я заметил, что состояние соединения открыто, но свойство datareader HasRows возвращает false.Я уверен, что могу передавать значения строки запроса в переменные. И что я упускаю, можете ли вы помочь

  protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["ka"] != null amp;amp; Request.QueryString["pass"] != null)
        {

            string username = Request.QueryString["ka"];
            string pass = Request.QueryString["pass"];
            SqlConnection con = new SqlConnection("server=.\sqlexpress;database=Projects;UID=sa;Password=1234");
            if (con.State == ConnectionState.Closed) {


                con.Open();
                SqlCommand cmd = new SqlCommand("select * from userstable where username=@name and pass=@pass", con);
                cmd.Parameters.AddWithValue("@name", username);
                cmd.Parameters.AddWithValue("@pass", pass);




                SqlDataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {

                    Response.Write("exist");
                }
                else
                {

                    Response.Write("Doesntexist");
                }
                con.Close();




            }

        }


        Response.Close();

    }
  

это Htmlpage

     <script src="Scripts/jquery-2.1.1.js"></script>
   <script type="text/javascript">


       function createXHR() {

           var xhr;


           try {
               xhr = new XMLHttpRequest();
           } catch (e) {

           }
           return xhr;
       }


       function signIn() {

           var xhr = createXHR();
           var username=$('#txtusername').val();
           var pass=$('#txtpass').val()

           xhr.onreadystatechange=function(){

               if(xhr!=null){

                   if(xhr.readyState==4){

                       if(xhr.status>=200 amp;amp; xhr.status<300){

                           var v = $('#result').html(xhr.responseText);
                           if (v == "exist") {
                               $('#result').html("Done");
                           }
                           else if (v == "Doesntexist") {

                               $('#result').html("Error");
                           }
                           else{
                               $('#result').html(v);

                           }

                           }

                   }

               }
               else{
                   $('#result').html("Error");


               }
           }

           xhr.open("GET", "Default.aspx?ka='"   username   "amp;pass="   pass, true);
           xhr.send(null);
       }
   </script>
</head>
<body>
    <input id="txtusername" type="text"  name="txtusername"/><br />
    <input id="txtpass" type="text"  name="txtpass"/><br />
    <input id="Button1" type="button" value="signin" onclick="signIn();" /><br />
    <div id="result" ></div>
</body>
  

Комментарии:

1. Примечание: Пожалуйста, не храните пароли в виде обычного текста. Пароли пользователей должны быть хэшированы, и вы должны сохранить хэш. Нет причин когда-либо иметь возможность прочитать необработанный пароль пользователя.

2. Возможно, в базе данных нет пользователя с указанным именем пользователя и паролем? 🙂 Кроме того, результатом страницы, скорее всего, будет полноценная HTML-страница, поэтому тестирование responseText может быть сложным. Почему вы пишете это как страницу, а не как веб-сервис?