现在的位置: 首页 > 综合 > 正文

DataReader没有Close之前与Output参数的问题

2013年10月12日 ⁄ 综合 ⁄ 共 487字 ⁄ 字号 评论关闭

前天在代码里遇到的bug,代码如下:

var para = new SqlParameter("@re", SqlDbType.DateTime) { Direction = ParameterDirection.Output };
using (var con = new SqlConnection(constr))
using(var commadn = con.CreateCommand())
{
    commadn.CommandText = "select top 11 * from softs;select @re = getdate() ";
    con.Open();
    commadn.Parameters.Add(para);
    using(var reader = commadn.ExecuteReader())
    {
        MessageBox.Show(Convert.ToString(para.Value));
    }
    MessageBox.Show(Convert.ToString(para.Value));
}

可以看到,在Reader.Close()之前,弹出的是空,也就是说,如果要获取Output的参数值,最好在关闭Reader之后去获取。

抱歉!评论已关闭.