前天在代码里遇到的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之后去获取。