SELECT в C#
Команда SELECT формирует набор столбцов из
таблицы. ExecuteReader открывает построчный
курсор: каждый вызов Read переходит к
следующей строке результата.
Для учебных баз в памяти достаточно одного
соединения ":memory:". После вставки слова
"alpha" запрос вернёт одну строку - в
консоли ожидается "alpha":
<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 terms (word TEXT); INSERT INTO terms VALUES ('alpha')";
c.ExecuteNonQuery();
}
using SqliteCommand q = db.CreateCommand();
q.CommandText = "SELECT word FROM terms";
using SqliteDataReader r = q.ExecuteReader();
r.Read();
Console.WriteLine(r.GetString(0));
Если строк несколько, без сортировки их порядок
не гарантирован. В примере строка одна, поэтому
Read точно переходит на неё, и результат
вызова не проверяют. Когда строк может не
оказаться, перед чтением колонки смотрят, что
Read вернул true.
Добавьте в таблицу "colors" названия
"red" и "blue" и выведите
каждое в консоль.