Следующий запрос SQL возвращает 1, когда заданные значения доступны, и 0, когда недоступны, и он отлично работает в SQL Server Management Studio,
select
case
when exists (select * from [dbo].[user]
where userName = 'admin'
and password = 'admin')
then cast(1 as bit)
else cast(0 as bit)
end
Тот же запрос с более щадящим ORM следующий::
public int login(string userName, string password)
{
string sql = "select case when exists(select * from user where userName = @usernamepara and password = @passwordpara) then cast(1 as bit) else cast(0 as bit )end";
using(IDbConnection conn = dbConnection)
{
conn.Open();
var res = conn.Execute(sql,
param: new { usernamepara = userName,
passwordpara = password });
conn.Close();
return res;
}
}
Но когда этот метод вызывается, он возвращает -1 для совпадающих и не совпадающих записей.Что здесь не так?