Parametry
Parametry se používají k ochraně před útoky prostřednictvím injektáže SQL. Místo zřetězení uživatelského vstupu s příkazy SQL použijte parametry k zajištění toho, aby vstup byl považován pouze za literální hodnotu a nikdy se nespustí. V SQLite jsou parametry obvykle povoleny kdekoli, kde je literál povolený v příkazech SQL.
Parametry mohou být předponou :
buď , @
nebo $
.
command.CommandText =
@"
INSERT INTO user (name)
VALUES ($name)
";
command.Parameters.AddWithValue("$name", name);
Podrobnosti o mapování hodnot .NET na hodnoty SQLite najdete v části Datové typy .
Zkrácení
Size Pomocí vlastnosti zkrátíte hodnoty TEXT a OBJEKT BLOB.
// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;
Alternativní typy
Někdy můžete chtít použít alternativní typ SQLite. Provedete to nastavením SqliteType vlastnosti.
Můžete použít následující mapování alternativních typů. Výchozí mapování najdete v tématu Datové typy.
Hodnota | SqliteType | Poznámky |
---|---|---|
Char | Celé číslo | UTF-16 |
DateOnly | Reálné | Hodnota julianského dne |
DateTime | Reálné | Hodnota julianského dne |
DateTimeOffset | Reálné | Hodnota julianského dne |
Guid | Objekt blob | |
TimeOnly | Reálné | Ve dnech |
TimeSpan | Reálné | Ve dnech |
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;
Výstupní parametry
SQLite nepodporuje výstupní parametry. Místo toho vrátí hodnoty ve výsledcích dotazu.