Dela via


Parameterar

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 .

Avkortning

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 Anmärkningar
Öring Heltal UTF-16
Endast datum Verklig Juliansk dagvärde
Datum och tid Verklig Juliansk dagvärde
DateTimeOffset (tidpunkt med tidsförskjutning) Verklig Juliansk dagvärde
Guide Blobb
TimeOnly Verklig I dagar
Tidsintervall Verklig 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