Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 opatřeny předponou buď :, nebo @, či $.
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í
Použijte vlastnost Size ke zkrácení hodnot TEXT a 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 |
|---|---|---|
| Znak | Celé číslo | UTF-16 |
| Pouze datum | real | Hodnota julianského dne |
| Datum a čas | real | Hodnota julianského dne |
| Posun data a času | real | Hodnota julianského dne |
| Průvodce | Bublina | |
| TimeOnly | real | Ve dnech |
| Časový úsek | real | 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.