加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在使用SqlDataReader时获取存储过程的返回值?

发布时间:2020-12-16 03:34:11 所属栏目:asp.Net 来源:网络整理
导读:使用datareader时是否无法获得存储过程的返回值?返回值始终为null,但SP从SSMS中返回有效的int. myCommand.CommandText = "GetVenueVideos";SqlParameter retVal = new SqlParameter("@returnValue",SqlDbType.Int);retVal.Direction = ParameterDirection.R
使用datareader时是否无法获得存储过程的返回值?返回值始终为null,但SP从SSMS中返回有效的int.

myCommand.CommandText = "GetVenueVideos";
SqlParameter retVal = new SqlParameter("@returnValue",SqlDbType.Int);
retVal.Direction = ParameterDirection.ReturnValue;
myCommand.Parameters.Add(retVal);
myReader = myCommand.ExecuteReader();
if (myReader.Read() && myReader.HasRows)
{
    int returnValue = Convert.ToInt32(retVal.Value);
    //returnValue is null at this point
}

解决方法

哎.我发现读者必须关闭以获得返回值!所以在上面的if {}块中,我添加了:

myReader.Close(); // Need to close data reader before getting return value.
int returnValue = (int)myCommand.Parameters["@returnValue"].Value;

……现在它工作正常!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读