ExecuteScalar
Метод выполняет запрос и возвращает первый столбец первой строки результирующей выборки данных (все другие столбцы и строки выборки данных игнорируются). Метод обычно используется для извлечения отдельного значения (например, значения агрегатной функции) из БД. В этом случае он более эффективен, чем метод ExecuteReader.
Примечание
В случае группы запросов, разделенных знаком «;» метод ExecuteScalar возвращает значение первого поля первой записи из результатов первого запроса, который возвращает данные.
Синтаксис
public abstract Object ExecuteScalar();
Возвращаемое значение
Первый столбец первой строки результирующей выборки данных в виде объекта System.Object или null-значение, если требуемые данные не найдены.
Исключения
InvalidOperationException | Возможные причины:
| |
Exception | Для входного параметра не установлено значение или для параметра длиной больше 4000 байт не установлен тип BLOB. | |
LinterSqlException | Код завершения СУБД ЛИНТЕР не равен 0. |
Пример
Выполнение функции COUNT(*)
// C#
using System;
using System.Data;
using System.Data.Common;
class ExecuteScalarSample
{
static void Main()
{
// Создание фабрики классов провайдера
DbProviderFactory factory =
DbProviderFactories.GetFactory("System.Data.LinterClient");
// Соединение с БД
DbConnection con = factory.CreateConnection();
con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8;Data Source=LOCAL";
con.Open();
// Создание объекта DbCommand
DbCommand cmd = factory.CreateCommand();
cmd.Connection = con;
// Формирование текста SQL-запроса
cmd.CommandText = "select count(*) from auto";
// Выполнение SQL-запроса
Object result = cmd.ExecuteScalar();
// Обработка результатов запроса
Console.WriteLine("Количество строк в таблице AUTO: " + result);
// Освобождение ресурсов
cmd.Dispose();
con.Dispose();
}
}
Результат выполнения примера:
Количество строк в таблице AUTO: 1000