Можно ли заметить, что может быть не так с помощью следующей функции:SQLCommand.ExecuteScalar() - почему он генерирует исключение System.NullReferenceException?
public string Login(string username, string password)
{
string result = "";
string select = "SELECT user_id FROM [user] WHERE username = @username AND password = @password";
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(select, conn);
cmd.Parameters.AddWithValue("username", username);
cmd.Parameters.AddWithValue("password", password);
int userID = 0;
try
{
conn.Open();
userID = (int)cmd.ExecuteScalar();
if(userID > 0)
{
result = addSession(userID);
}
}
catch(Exception ex)
{
string sDummy = ex.ToString();
}
return result;
}
Не знаю, почему строка `идентификатор пользователя = (INT) cmd.ExecuteScalar(); выдает исключение.
Благодаря
Вы должны опубликовать полное исключение, включая любое InnerException. –
Чтобы избежать другой проблемы, приложите поле «пароль» в квадратных скобках, так как это также зарезервированное слово. – HardCode