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

Viz také