Если вы просто читаете данные и не выполняете обновления / вставки / удаления, SqlDataReader
будет быстрее. Вы также можете комбинировать его с DataSet
. Если вы оберните объекты доступа к данным операторами using
, среда выполнения обработает логику очистки соединения.
Шаблон, который я часто использую для синхронного доступа, выглядит примерно так:
DataTable result = new DataTable();
using (SqlConnection conn = new SqlConnection(MyConnectionString))
{
using (SqlCommand cmd = new SqlCommand(MyQueryText, conn))
{
// set CommandType, parameters and SqlDependency here if needed
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
result.Load(reader);
}
}
}
Для обновлений / удалений / вставок, возможно, стоит рассмотреть SqlDataAdapter
, но обычно, только если у вас уже есть данные в DataSet
. В противном случае есть более быстрые / лучшие способы ведения дел.