SqlDataAdapter.Fill() против DataTable.Load()C#

Место общения программистов C#
Ответить
Anonymous
 SqlDataAdapter.Fill() против DataTable.Load()

Сообщение Anonymous »

Я пришел к этому вопросу, но у меня другой случай. Мне нужен результат в DataTable, и у меня есть два возможных метода:

Код: Выделить всё

public static DataTable SelectDataTable(string query, string ConnectionString)
{
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
using (SqlDataAdapter myDataAdapter = new SqlDataAdapter(query, myConnection))
{
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
return dt;
}
}
}
и

Код: Выделить всё

public static DataTable SelectDataTable(string query, string ConnectionString)
{
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(query, myConnection))
{
myConnection.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
return dt;
}
}
}
поэтому мой вопрос: есть ли разница между

Код: Выделить всё

SqlDataAdapter
+ Fill()
и

Код: Выделить всё

SqlDataReader
+ DataTable + Load()

Какому из методов отдать предпочтение?


Ответ Джоэла довольно подробный, что делает этот вопрос не дубликатом.


На самом деле я не использую все упомянутые преимущества SqlDataReader. Я использую его для заполнения DataTable, и это заставляет меня ожидать, что ответ будет таким: Это то же самое ?! К сожалению, сложно угадать, что происходит под капотом.

Подробнее здесь: https://stackoverflow.com/questions/550 ... table-load
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»