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