这是一个非常简单的问题..我想知道基于下面的代码..是否关闭连接然后返回庄园将被执行或返回庄园将执行而不关闭连接?..因为我设置了CommandBehavior
关闭连接,但我认为连接根本不会接近......我是对的?
using (var con = new SqlConnection(_constr))
{
con.Open();
var cmd = new SqlCommand(cmdstr, con);
var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
return Convert.ToInt32(reader["persianDate"].ToString());
}
答案 0 :(得分:3)
关联时关联的Connection对象关闭 DataReader对象已关闭。
由于您在返回之前没有关闭数据阅读器,因此使用CommandBehavior.CloseConnection
没有任何影响,但您的using
块将关闭连接。
我会同时为using
和SqlCommand
添加Reader
块
using (var con = new SqlConnection(_constr))
using (var cmd = new SqlCommand(cmdstr, con))
{
con.Open();
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
return Convert.ToInt32(reader["persianDate"].ToString());
}
}
答案 1 :(得分:1)
它将被关闭。在Dispose
上调用SqlConnection
隐式调用Close
,因为您使用using
语句,保证在块结束时始终调用Dispose
。