Member 12900391 Ответов: 2

Исправлена ошибка " неправильный синтаксис near =...sqldatareader sdr = cmd. executereader(); "


public UserAcct(строковое имя, строковый пароль)
{
string conString = WebConfigurationManager.Соединительные нити
["StoreConnectionString"].Параметр connectionString;
SqlConnection con = new SqlConnection(conString);
Команда sqlcommand cmd и = новая команда sqlcommand("выберите идентификатор пользователя, роль, письмо от [пользователи], где name = @name и функция pwdcompare(@пароль, password = 1", кон);
УМК.CommandType = CommandType. Text;
УМК.Параметры.AddWithValue ("@name", имя);
УМК.Параметры.AddWithValue ("@password", пароль);
против.Открыть();

SqlDataReader sdr = cmd.Метода executereader();
если (СДР.HasRows)
{
СДР.Читать();
этот.UserId = (int)sdr[0];
этот.Имя name;
этот.Role = (string)sdr[1];
этот.Email = (string)sdr[2];

//Session ["User"] = это;
//если (это.Роль = = " пользователь")
// Session ["Cart"] = new ShoppingCart();
}
ещё
{
этот.UserId = 0;
}
против.Закрывать();
}

Что я уже пробовал:

Я не пробовал ничего, кроме как погуглить проблему, я не знаю, с чего начать.

Philippe Mori

Вы слишком ленивы, чтобы форматировать свой код?

2 Ответов

Рейтинг:
1

OriginalGriff

Отсутствует закрывающая скобка:

... name = @name and PWDCOMPARE(@password, password = 1", con);

Попробуй:
... name = @name and PWDCOMPARE(@password, password) = 1", con);


Рейтинг:
1

Peter Leow

Закрывающая скобка здесь отсутствует:

PWDCOMPARE(@password, password = 1"

PWDCOMPARE (Transact-SQL)[^]