निम्नलिखित में से दो उदाहरण सही हैं? (या जो एक बेहतर है और मैं का उपयोग करना चाहिए)क्या मुझे "उपयोग" कथन के अंदर SqlDataReader का उपयोग करना चाहिए?
MSDN में मैं इस पाया:
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();
}
}
हालांकि अन्य पन्नों कुछ उपयोगकर्ताओं को इस तरह से करने के लिए सुझाव है की तलाश में:
private static void ReadOrderData(string connectionString)
{
string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(queryString, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
// Call Read before accessing data.
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}
}
}
}
}
तो , सवाल यह है: क्या मुझे using
कथन का उपयोग SqlCommand
और SqlDataReader
में भी करना चाहिए या SqlConnection
using
कोड ब्लॉक के अंत में स्वचालित रूप से उनका निपटारा किया जाना चाहिए।
संभावित डुप्लिकेट [क्या एसक्यूएलटाटाइडर मैन्युअल रूप से बंद करना और निपटाना आवश्यक है?] (Http://stackoverflow.com/questions/744051/is-it-necessary-to-manually-close-and-dispose-of- sqldatareader) –
यह भी संबंधित है: [DataReader के आस-पास "उपयोग" कथन डालने से इसे बंद कर दिया जाएगा?] (http://stackoverflow.com/q/2157276/456814)। –