2016-08-24 3 views
0

Я пытаюсь войти в систему, используя LoginID и Password в качестве имени пользователя и пароля, соответственно, тем не менее, я получаю исключение:Необходимо объявить скалярную переменную «@loginname»

должен объявить скалярную переменную «@loginname »

protected void SignInButton_Click(object sender, EventArgs e) 
{ 
    int customerId = 0; 
    int loginName = Convert.ToInt32(LoginTextBox.Text); 
    string password = PasswordTextBox.Text; 
    SqlCommand command = new SqlCommand(); 
    SqlDataReader reader; 
    command.CommandText = "Select CustomerID from Customers where LoginID= @loginName and Password= @password"; 
    command.Parameters.AddWithValue("@LoginID", loginName); 
    command.Parameters.AddWithValue("@Password", password); 
    command.Parameters.AddWithValue("@CustomerID", customerId); 
    reader = DbUtility.GetDataReader(command); 

    if (reader.HasRows) 
    { 
     reader.Read(); 
     customerId = reader.GetInt32(0); 
     Session["CustomerID"] = customerId; 
     Response.Redirect("ListCategories.aspx"); 
    } 
    else 
    { 
     MessegeLabel.Text = "User Name or Password Incorrect"; 
    } 
} 
+0

Вы попробовать, а потом ... что происходит? Вы получили сообщение об ошибке? Разве это не компилируется? –

ответ

0

у вас есть некоторые SQL там, который включает в себя параметр @loginName. Вы никогда не предоставляете этот параметр; вместо этого вы предоставляете неиспользованный параметр, называемый @LoginID (вместе с неиспользованным @CustomerID также по какой-либо причине).

Это говорит вам, что вам нужно предоставить все параметры, которые использует ваш фрагмент SQL.

command.CommandText = "Select CustomerID from Customers where LoginID= @loginName and Password= @password"; 
command.Parameters.AddWithValue("@LoginID", loginName); 
command.Parameters.AddWithValue("@Password", password); 
command.Parameters.AddWithValue("@CustomerID", customerId); 

Так обеспечить его:

command.Parameters.AddWithValue("@loginName", loginName); 
Смежные вопросы