高手救我...
通过SqlCommand的ExecuteReader方法获取存储过程的返回值或者输出参数的问题
我使用SqlCommand的ExecuteReader方法执行一个存储过程,获取一个SqlDataReader对象,使用完后,我也关闭了该对象,但为什么我还无法获取存储过程的输出参数呢?
部分原代码:
int UserID = -1;
string[] str;
//设置参数
SqlParameter[] prams = {
CExecProc.MakeInParam("@UserNO", SqlDbType.VarChar, 32, UserNO),
CExecProc.MakeInParam("@Password", SqlDbType.VarChar, 32, assword),
CExecProc.MakeInParam("@IPAddress", SqlDbType.VarChar, 16, IPAddress),
CExecProc.MakeInParam("@ComputerName", SqlDbType.VarChar, 32, ComputerName),
CExecProc.MakeOutParam("@UserID", SqlDbType.Int, 4)//此为输出参数
};
//获取一个SqlDataReader对象
SqlDataReader dr= CExecProc.ExecProcResultInfo("SPLogin",prams,out str);
while (dr.Read());
dr.Close();
UserID = (int) prams[4].Value;//发生错误的语句
return UserID;
------------------------------------------------------------------------------
异常信息:
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 39: while (dr.Read());
行 40: dr.Close();
行 41: UserID = (int) prams[4].Value;
行 42: return UserID;