我创建了一个存储过程以返回一个bool,我正在尝试在我的应用程序(asp.net mvc c#)中建立它的连接,但我不知道我应该如何执行命令来正确返回bool。
代码:
public virtual bool CheckEmail(string email, int Id)
{
SqlCommand _command = new SqlCommand("dbo.CheckEmail");
_command.Connection = DbInstance.SqlConnection;
_command.CommandType = CommandType.StoredProcedure;
_command.Parameters.Add(new SqlParameter { ParameterName = "Email", SqlDbType = SqlDbType.NVarChar, Value = email });
_command.Parameters.Add(new SqlParameter { ParameterName = "Id", SqlDbType = SqlDbType.Int, Value = Id});
........
}
我以为我会尝试:
var _result = DbInstance.ExecuteAsSingle<int>(_command, r => r.GetValueOrDefault<int>(0));
if (_result > 0)
return true;
return false;
我得到的错误是:{"Specified cast is not valid."}
任何有用的提示都会很棒 - 谢谢。
答案 0 :(得分:3)
你有没有尝试过;
return DbInstance.ExecuteAsSingle<bool>(_command, r => r.GetValueOrDefault<bool>(0));
而不是您发布的第二个代码块?