При вашем текущем использовании он закроется для вас:
Если IDbConnection закрывается до вызова Fill, он открывается для извлечения данных, а затем закрывается.Если соединение открыто до вызова Fill, оно остается открытым.
http://msdn.microsoft.com/en-us/library/zxkb3c3d.aspx
Я думаю, что всегда лучше явно обслуживать его самостоятельно с помощью оператора using
:
using (SqlConnection conn = new SqlConnection(""))
{
conn.Open();
// Do Stuff.
} // Closes here on dispose.
Это часто более читабельно и не полагается на людей, понимающих внутреннюю работу SqlDataAdapter.Fill
, только на утверждение using
и связи.
Однако, если вы знать соединение закрывается до того, как адаптер его использует (например, вы только что создали соединение), и оно не используется ни для чего другого, ваш код совершенно безопасен и действителен.
ЛичноЯ бы написал что-то вроде этого:
string cnStr = "Data Source=TEST;Initial Catalog=Suite;Persist Security Info=True;User ID=app;Password=Immmmmm";
DataSet ds = new DataSet();
using (SqlConnection cn = new SqlConnection(cnStr))
using (SqlCommand cmd = new SqlCommand("SELECT TOP 10 * FROM Date", cn))
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
conn.Open();
adapter.Fill(ds);
}