Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Параметры используются для защиты от атак SQL-инъекций. Вместо объединения входных данных пользователя с инструкциями SQL используйте параметры, чтобы гарантировать, что входные данные рассматриваются только как литеральное значение и никогда не выполняются. В SQLite параметры обычно допускаются в любом месте, где разрешен литерал в инструкциях SQL.
Параметры можно префиксировать с помощью :либо , @либо $.
command.CommandText = "INSERT INTO user (name) VALUES ($name)";
command.Parameters.AddWithValue("$name", name);
Сведения о сопоставлении значений .NET со значениями SQLite см. в разделе "Типы данных ".
Усечение
Используйте свойство Size для усечения значений TEXT и BLOB.
// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;
Альтернативные типы
Иногда может потребоваться использовать альтернативный тип SQLite. Сделайте это, установив свойство SqliteType.
Можно использовать следующие сопоставления альтернативных типов. Сопоставления по умолчанию см. в разделе "Типы данных".
| Ценность | тип Sqlite | Замечания |
|---|---|---|
| Уголь | Целое число | UTF-16 |
| ТолькоДата | Реальный | Значение дня Джулиана |
| дата и время | Реальный | Значение дня Джулиана |
| DateTimeOffset (смещение даты и времени) | Реальный | Значение дня Джулиана |
| Гид | блоб | |
| TimeOnly | Реальный | В днях |
| Интервал времени | Реальный | В днях |
command.CommandText =
@"
SELECT count(*)
FROM task
WHERE finished IS NULL
AND julianday('now') - julianday(started) > $expected
";
// Convert TimeSpan to days instead of text
command.Parameters.AddWithValue("$expected", expected).SqliteType = SqliteType.Real;
Выходные параметры
SQLite не поддерживает выходные параметры. Вместо этого возвращают значения в результатах запроса.