Dela via


Parametrar

Parametrar används för att skydda mot SQL-inmatningsattacker. I stället för att sammanfoga användarindata med SQL-instruktioner använder du parametrar för att säkerställa att indata bara behandlas som ett literalvärde och aldrig körs. I SQLite tillåts parametrar vanligtvis var som helst där en literal tillåts i SQL-instruktioner.

Parametrar kan prefixeras med antingen :, @eller $.

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

Mer information om hur .NET-värden mappas till SQLite-värden finns i Datatyper .

Trunkering

Använd egenskapen Size för att trunkera TEXT- och BLOB-värden.

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

Alternativa typer

Ibland kanske du vill använda en alternativ SQLite-typ. Gör detta genom att ange egenskapen SqliteType .

Följande alternativa typmappningar kan användas. Standardmappningar finns i Datatyper.

Värde SqliteType Kommentarer
Char Integer UTF-16
DateOnly Real Julians dagvärde
Datum/tid Real Julians dagvärde
DateTimeOffset Real Julians dagvärde
GUID Blob
TimeOnly Real I dagar
TimeSpan Real I dagar
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;

Utdataparametrar

SQLite stöder inte utdataparametrar. Returnera värden i frågeresultatet i stället.

Se även