Udostępnij przez


Parametry

Parametry są używane do ochrony przed atakami polegającymi na wstrzyknięciu kodu SQL. Zamiast łączyć dane wejściowe użytkownika z instrukcjami SQL, użyj parametrów, aby upewnić się, że dane wejściowe są traktowane tylko jako wartość literału i nigdy nie są wykonywane. W programie SQLite parametry są zwykle dozwolone w dowolnym miejscu, gdzie literał jest dozwolony w poleceniach SQL.

Parametry mogą być poprzedzone prefiksem , :@lub $.

command.CommandText = "INSERT INTO user (name) VALUES ($name)";
command.Parameters.AddWithValue("$name", name);

Zobacz Typy danych , aby uzyskać szczegółowe informacje na temat sposobu mapowania wartości platformy .NET na wartości SQLite.

Przycinanie

Użyj właściwości Size do skrócenia wartości TEXT i BLOB.

// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;

Typy alternatywne

Czasami warto użyć alternatywnego typu SQLite. Aby to zrobić, ustaw właściwość SqliteType.

Można użyć następujących mapowań typów alternatywnych. Aby zapoznać się z domyślnymi mapowaniami, zobacz Typy danych.

Wartość SqliteType Uwagi
Char Liczba całkowita UTF-16
DataTylko Rzeczywisty Wartość dnia juliańskiego
Data i Czas Rzeczywisty Wartość dnia juliańskiego
PrzesunięcieDatyICzasu Rzeczywisty Wartość dnia juliańskiego
Przewodnik Blob
TimeOnly Rzeczywisty W dniach
Przedział czasu Rzeczywisty W dniach
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;

Parametry wyjściowe

SqLite nie obsługuje parametrów wyjściowych. Zamiast tego zwracaj wartości w wynikach zapytania.

Zobacz także