返回具有关闭连接命令行为、执行顺序的执行读取器结果
本文关键字:执行 顺序 读取 结果 命令行 连接 返回 | 更新日期: 2023-09-27 18:36:33
这是一个非常简单的问题。我想根据下面的代码知道。是连接关闭,然后执行返回对账单,还是在不关闭连接的情况下执行返回电子对账单?..因为我设置了关闭连接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());
}
当关联的连接对象关闭时 数据读取器对象已关闭。
由于您没有在返回之前关闭数据读取器,因此使用CommandBehavior.CloseConnection
没有影响,但您的using
块将关闭连接。
我也会为SqlCommand
和Reader
添加using
块
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());
}
}
它将被关闭。在SqlConnection
调用上调用Dispose
Close
隐式的,并且由于您使用using
语句,因此可以保证Dispose
将始终在块结束时调用。