Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpSqEm 413 of 509 menu
◀ ▶

Пустой результат в C#

Пустой результат SELECT - нормальный случай, не ошибка SQL. Read на ридере сразу вернёт false, если таблица пуста или условие WHERE не оставило ни одной строки.

Пустая таблица "t" без строк: первый Read напечатает False в консоли:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.14" /> </ItemGroup> </Project>
using Microsoft.Data.Sqlite; using SqliteConnection db = new("Data Source=:memory:"); db.Open(); using (SqliteCommand c = db.CreateCommand()) { c.CommandText = "CREATE TABLE IF NOT EXISTS t (x INT)"; c.ExecuteNonQuery(); } using SqliteCommand q = db.CreateCommand(); q.CommandText = "SELECT x FROM t"; using SqliteDataReader r = q.ExecuteReader(); Console.WriteLine(r.Read());

Та же пустота бывает у условия WHERE 1=0: строк нет, и Read сразу вернёт false. Запрос COUNT(*) при этом всё равно вернёт 0, а не null.

Сделайте выборку, которая заведомо ничего не вернёт, и выведите 0, если строк нет.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить