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

SqliteDataReader в C#

Метод ExecuteReader возвращает односторонний курсор: повторно к предыдущей строке вернуться нельзя. Read сдвигает указатель вперёд и возвращает false, когда строк больше нет.

Колонку читают по индексу, с нуля. В таблице с полями "a" и "b" второй столбец, индекс 1, даст "2":

<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 (a TEXT, b TEXT); INSERT INTO t VALUES ('1','2')"; c.ExecuteNonQuery(); } using SqliteCommand q = db.CreateCommand(); q.CommandText = "SELECT a,b FROM t"; using SqliteDataReader r = q.ExecuteReader(); r.Read(); Console.WriteLine(r.GetString(1));

Если в выборке несколько строк, цикл while (r.Read()) обходит их по одной. В примере строка одна, поэтому Read вызывают один раз. После закрытия ридера через using читать результат нельзя.

В таблице "notes" есть колонки "title" и "body". Добавьте строку "Plan" и "Ship it" и выведите текст заметки.

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