Параметры SqliteParameter в C#
Плейсхолдер "@code" связывают через
Parameters.AddWithValue - текст запроса
не смешивают с данными пользователя.
После одной вставки COUNT(*) печатает
1:
using Microsoft.Data.Sqlite;
using SqliteConnection db = new("Data Source=:memory:");
db.Open();
using (SqliteCommand setup = db.CreateCommand())
{
setup.CommandText =
"CREATE TABLE slots (id INTEGER PRIMARY KEY, code TEXT NOT NULL)";
setup.ExecuteNonQuery();
}
using SqliteCommand insert = db.CreateCommand();
insert.CommandText = "INSERT INTO slots (code) VALUES (@code)";
insert.Parameters.AddWithValue("@code", "A-17");
insert.ExecuteNonQuery();
using SqliteCommand count = db.CreateCommand();
count.CommandText = "SELECT COUNT(*) FROM slots";
Console.WriteLine(count.ExecuteScalar());
Имя параметра в SQL и в AddWithValue
должно совпадать, иначе значение не подставится.
Создайте таблицу "users" с колонками
"id" и "name". Добавьте
несколько человек и по имени "Anna"
выведите её номер. Имя подставьте параметром,
не дописывая его в текст запроса.