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 in genere sono 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 proprietà Size 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 fine, impostare la proprietà SqliteType.

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

Valore SqliteType Osservazioni:
Char Intero UTF-16
DateOnly Reale Valore del giorno Julian
Data/Ora Reale Valore del giorno Julian
DateTimeOffset Reale Valore del giorno Julian
GUID BLOB
TimeOnly Reale In giorni
TimeSpan 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.

Vedi anche