2016-03-15 3 views
0

Я использую этот код для проверки пользователя, но он всегда отображает «Пользователь не найден». Использую ли я команду полного выбора с предложением where или нет. Ответ одинаковый каждый раз. Хотя он показывает некоторый результат в целом, но я не могу сопоставить один результат.SQL Server не показывает никакого вывода

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Text; 
using System.Configuration; 

public partial class Applicant : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     using (SqlConnection cn = new SqlConnection(myConnString)) 
     { 
      using (SqlCommand cmd = new SqlCommand()) 
      { 
       cn.Open(); 
       SqlDataReader conReader = null; 
       cmd.CommandText = "Select * from Applicant "; 
       cmd.Connection = cn; 
       cmd.CommandType = CommandType.Text; 
       // cmd.Parameters.AddWithValue("@userName", myid); 
       // cmd.Parameters.AddWithValue("@UserPassword", mypass); 
       try 
       { 
        conReader = cmd.ExecuteReader(); 
        bool _userfound = false; 
        while (conReader.Read()) 
        { 
         if (conReader[0].ToString() == myid.ToString() && conReader[1].ToString() == mypass.ToString()) 
         { 
          _userfound = true; 
          break; 
         } 
        } 
        if (_userfound) 
         Response.Write("User Found"); 
        else 
         Response.Write("User not Found"); 
       } 
       catch (Exception ex) 
       { 
        Console.Write(ex); 
       } 
       finally 
       { 
        cn.Close(); 
       } 
      } 
     } 
    } 
} 
+0

Вы _sure_ 'select *' возвращает 'username' как первый столбец и' userpassword' как второй? Нет идентификатора пользователя или подобного, который может быть первым? В любом случае, для ясности, вы действительно не должны делать 'select *' и индексировать по номеру столбца. –

+0

Просто отлаживайте и помещайте несколько сообщений журнала на каждое сравнение, которое вы делаете, чтобы вы могли знать, соответствуют ли результаты запроса. – Tirma

ответ

3

Вы должны сделать запрос завершен, например .:

cmd.CommandText = "Select * from Applicant where UserName = @userName"; 

Только тогда добавление параметра (одного и того же имени) подставляются в запросе.

Смежные вопросы