Sdílet prostřednictvím


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 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.

Viz také