正确使用 SqlDataReader
Proper use of SqlDataReader
我看过 2 个例子 SqlDataReader
第一个有一个 using 管理连接的处理和使用的内存,第二个有更少的代码。
更喜欢哪一个?
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
myConnection.Open();
using (SqlCommand cmd = new SqlCommand("SELECT Name FROM User;", myConnection))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
DoStuff((string)reader["Name"]);
}
}
}
}
第二个:
using (SqlConnection mConnection = new SqlConnection(ConnectionString))
{
mConnection.Open();
using (SqlCommand cmd = new SqlCommand("SELECT Name FROM User;", mConnection))
{
for (SqlDataReader reader = cmd.ExecuteReader(); reader.Read(); )
{
DoStuff((string)reader["Name"]);
}
}
}
the second has less code.
不是真的。
Which one is to prefer?
到目前为止,第一个。但只是出于审美原因。
在第二个示例中,Reader 将在其(拥有的)连接被处置时关闭,但最好在代码中明确地这样做。
第一个是good.The不需要的资源将通过显式调用自动处理
我看过 2 个例子 SqlDataReader
第一个有一个 using 管理连接的处理和使用的内存,第二个有更少的代码。
更喜欢哪一个?
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
myConnection.Open();
using (SqlCommand cmd = new SqlCommand("SELECT Name FROM User;", myConnection))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
DoStuff((string)reader["Name"]);
}
}
}
}
第二个:
using (SqlConnection mConnection = new SqlConnection(ConnectionString))
{
mConnection.Open();
using (SqlCommand cmd = new SqlCommand("SELECT Name FROM User;", mConnection))
{
for (SqlDataReader reader = cmd.ExecuteReader(); reader.Read(); )
{
DoStuff((string)reader["Name"]);
}
}
}
the second has less code.
不是真的。
Which one is to prefer?
到目前为止,第一个。但只是出于审美原因。
在第二个示例中,Reader 将在其(拥有的)连接被处置时关闭,但最好在代码中明确地这样做。
第一个是good.The不需要的资源将通过显式调用自动处理