Sql server SqlDataReader关闭和SqlConnection
在这种情况下,连接会发生什么情况?我不知道reader.Close()是否关闭打开的sqlconnectionSql server SqlDataReader关闭和SqlConnection,sql-server,ado.net,sqldatareader,sqlconnection,Sql Server,Ado.net,Sqldatareader,Sqlconnection,在这种情况下,连接会发生什么情况?我不知道reader.Close()是否关闭打开的sqlconnection private static void ReadOrderData(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; using (SqlConnection connection = new SqlConnection(conn
private static void ReadOrderData(string connectionString)
{
string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}
// Call Close when done reading.
reader.Close();
}
}
检查
既然你在做
using (SqlConnection connection =
new SqlConnection(connectionString))
{
这将确保连接在从IDisposable继承时被释放,尽管存在异常。和对象一旦退出其相应的作用域就被释放
更好地利用
using(SqlCommand command = new SqlCommand(queryString, connection))
及
出于上述相同原因。检查
既然你在做
using (SqlConnection connection =
new SqlConnection(connectionString))
{
这将确保连接在从IDisposable继承时被释放,尽管存在异常。和对象一旦退出其相应的作用域就被释放
更好地利用
using(SqlCommand command = new SqlCommand(queryString, connection))
及
出于上述相同的原因。reader.Close()不会关闭SqlConnection,但由于您有一个using语句,一旦退出using块,连接仍将关闭 reader.Close()不会关闭SqlConnection,但由于您有一个using语句,一旦退出using块,连接仍将关闭 关闭读卡器不会改变连接状态。如果确实要这样做,可以将
CommandBehavior.CloseConnection
传递给SqlCommand
实例的ExecuteReader
方法
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
using(SqlDataReader reader = command.ExecuteReader()) {
// rest of code
}
建议在所有可使用类型(如SqlDataReader
实例)周围放置using
块
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
using(SqlDataReader reader = command.ExecuteReader()) {
// rest of code
}
有关更多选项,请参见。关闭读卡器不会改变连接状态。如果确实要这样做,可以将
CommandBehavior.CloseConnection
传递给SqlCommand
实例的ExecuteReader
方法
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
using(SqlDataReader reader = command.ExecuteReader()) {
// rest of code
}
建议在所有可使用类型(如SqlDataReader
实例)周围放置using
块
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
using(SqlDataReader reader = command.ExecuteReader()) {
// rest of code
}
有关更多选项,请参见