Я запутался в использовании
- Элемент списка
- ExecuteScalar,
- ExecuteReader,
- ExecuteNonQuery
Когда использовать эти методы?
Я запутался в использовании
Когда использовать эти методы?
ExecuteScalar() возвращает только значение из первого столбца первой строки вашего запроса.
ExecuteReader() возвращает объект, который может выполнять итерацию по всему набору результатов, одновременно сохраняя только одну запись в памяти.
ExecuteNonQuery() не возвращает данные вообще: только количество строк, затронутых вставкой, обновлением или удалением.
Кроме того, вы можете посмотреть тип DbDataAdapter, который включает метод Fill(), который позволяет загружать весь набор результатов в DataTable strong > или DataSet, а также ряд других способностей.
Наконец, вам кажется, что вам приятно познакомиться с MSDN. Это документация для: у вас есть имена методов. Ищите их.
ExecuteScalar: для одиночного значения
Int32 Value = Convert.ToInt32(ExecuteScalar("SELECT SUM(COLUMNNAME) FROM TABLE"));
Int32 Value = Convert.ToInt32(ExecuteScalar("SELECT AVG(COLUMNNAME) FROM TABLE"));
ExecuteReader: чтение строки в прямом режиме
IdataReader dr = ExecuteReader("SELECT * FROM TABLE");
while(dr.Read())
{
//You will get rows values like this dr["ColumnName"]
}
ExecuteNonQuery: для вставки/удаления/обновления строк в таблице
ExecuteNonQuery("DELETE FROM TABLE");
ExecuteNonQuery("UPDATE TABLE SET COLUMNNAME = 'A'");
ExecuteNonQuery
Метод ExecuteNonQuery возвращает количество строк, выполняемых с помощью INSERT, DELETE или UPDATE. Этот метод ExecuteNonQuery будет используется только для вставки, обновления и удаления, создания и установки заявления. (Подробнее об ExecuteNonQuery)
SqlCommand.ExecuteNonQuery Документация MSDN
ExecuteReader
Execute Reader будет использоваться для возврата набора строк, при выполнении SQL Query или хранимую процедуру с использованием объекта команды. Этот пересылать только поиск записей, и он используется для чтения таблицы значения от первого до последнего. (Подробнее об ExecuteReader)
Документация MSDN SqlCommand.ExecuteReader
Выполнение скалярного
Выполнение Scalar вернет однострочное значение одной строки, то есть одиночное значение, при выполнении SQL Query или хранимой процедуры с использованием команды объект. Это очень быстро, чтобы извлекать одиночные значения из базы данных. (Читать Подробнее о Execute Scalar)
Используйте ExecuteScalar
, когда ваш запрос возвращает одно значение. Если он возвращает больше результатов, конечным результатом является первый столбец первой строки. Примером может быть SELECT Count(*) from MyTable
Используйте ExecuteReader
для получения набора результатов с несколькими строками/столбцами (например, SELECT col1, col2 from MyTable
.
Используйте ExecuteNonQuery
для операторов SQL, которые не будут извлекать результаты из базы данных, но делать обновления в существующей базе данных (например, UPDATE, INSERT,
и т.д.).
По сути, это упрощено, но вы можете найти каждый из терминов SQL или .net или прочитать о ADO.net в MSDN для получения дополнительной информации.
ExecuteScalar
при вызове скалярной функции SQL, которая возвращает только один номер.
ExecuteReader
, когда вы делаете вызов SQL, который будет возвращать набор записей из таблицы, который дает объект SqlDataReader для извлечения данных на С#.
ExecuteNonQuery
используется, когда нет никакого возвращаемого значения любого вида, ожидаемого от SQL-сервера, примером которого является простой оператор UPDATE.