Asp.net 未通过ExecuteReader获取存储过程输出变量
这是我的密码-Asp.net 未通过ExecuteReader获取存储过程输出变量,asp.net,stored-procedures,executereader,Asp.net,Stored Procedures,Executereader,这是我的密码- using (SqlDataReader sqlDataReader = ExecuteReader(CommandType.StoredProcedure, StoredProcedures.AuthenticateUser, sqlParameter)) { isAuthenticated = Convert.ToBoolean(sqlParameter[2].Value); if (isAuthenticat
using (SqlDataReader sqlDataReader = ExecuteReader(CommandType.StoredProcedure, StoredProcedures.AuthenticateUser, sqlParameter))
{
isAuthenticated = Convert.ToBoolean(sqlParameter[2].Value);
if (isAuthenticated)
{
if (sqlDataReader.Read())
{
User = new UserEntity();
DbHelper.GetEntity(sqlDataReader, User);
}
}
}
我总是将
isAuthenticated
设置为false,因为sqlParameter[2].Value
始终为空,但当我使用ExecuteOnQuery
执行查询时,它会给我值,但在这种情况下,我无法填充实体。请建议。我相信输出参数在您从DataReader读取所有结果之前不可用。请尝试以下方法:
using (SqlDataReader sqlDataReader = ExecuteReader(CommandType.StoredProcedure,
StoredProcedures.AuthenticateUser, sqlParameter))
{
var newUser = new UserEntity();
if (sqlDataReader.Read())
{
DbHelper.GetEntity(sqlDataReader, User);
}
isAuthenticated = Convert.ToBoolean(sqlParameter[2].Value);
if (isAuthenticated)
{
User = newUser;
}
}