Member 11856456 Ответов: 2

В чем разница между executennonquery и dataadapter.fill?


Я заметил, что оба exceutenonquery и dataadatper.fill оба делают одно и то же с точки зрения манипулирования данными datatable. Однако я не понимаю, в чем разница и почему одно должно использоваться над другим? кто-нибудь может это объяснить?

Что я уже пробовал:

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

2 Ответов

Рейтинг:
5

Vincent Maverick Durano

Цитата:
Я заметил, что оба exceutenonquery и dataadatper.fill оба делают одно и то же с точки зрения манипулирования данными datatable.


Вы здесь все путаете. То SqlCommand ExecuteNonQuery не будет манипулируйте данными в DataTable Его цель состоит в том, чтобы выполнить INSERT, UPDATE или DELETE и возвращает затронутые строки независимо от того, выполняете ли вы необработанную строку SQL или StoredProcedure. То SqlDataAdapter.Fill() метод retrieves (выбирает или извлекает) ваши данные из базы данных в указанный DataSet или DataTable. Обычно вы используете DataSet если вы имеете дело с несколькими результатами таблиц из вашего SQL-запроса /SP, в противном случае вы будете использовать только DataTable чтобы иметь дело с одним результирующим набором.


Рейтинг:
13

Wendelius

объект DataAdapter.Fill используется для заполнения данных в наборе данных или команде datatable while.ExecuteNonQuery может использоваться для операций обновления, удаления, вставки, выполнения хранимых процедур и т.д.

Взгляните на это
- Заполнение набора данных из DataAdapter | Microsoft Docs[^]
- Свойство sqlcommand.Метод ExecuteNonQuery (System.Data.SqlClient) | Microsoft Docs[^]