Condividi tramite


Parametri

I parametri vengono usati per proteggersi da attacchi SQL injection. Anziché concatenare l'input utente con istruzioni SQL, usare i parametri per garantire che l'input venga considerato solo come valore letterale e mai eseguito. In SQLite i parametri sono in genere consentiti ovunque sia consentito un valore letterale nelle istruzioni SQL.

I parametri possono essere preceduti da :, @o $.

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

Per informazioni dettagliate sul mapping dei valori .NET ai valori SQLite, vedere Tipi di dati .

Troncamento

Usare la Size proprietà per troncare i valori TEXT e BLOB.

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

Tipi alternativi

In alcuni casi, è possibile usare un tipo SQLite alternativo. A tale scopo, impostare proprietà SqliteType.

È possibile usare i mapping di tipi alternativi seguenti. Per i mapping predefiniti, vedere Tipi di dati.

Valore SqliteType Osservazioni:
Char Numero intero UTF-16
DateOnly Reale Valore del giorno giuliano
Data e ora Reale Valore del giorno giuliano
DateTimeOffset (struttura per gestire data e ora con fuso orario) Reale Valore del giorno giuliano
Guid Blob
TimeOnly Reale In giorni
Intervallo di tempo Reale In giorni
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;

Parametri di output

SQLite non supporta i parametri di output. Restituisce invece i valori nei risultati della query.

Vedere anche