Delen via


Parameters

Parameters worden gebruikt om te beschermen tegen SQL-injectieaanvallen. In plaats van gebruikersinvoer samen te voegen met SQL-instructies, gebruikt u parameters om ervoor te zorgen dat invoer alleen wordt behandeld als een letterlijke waarde en nooit wordt uitgevoerd. In SQLite zijn parameters meestal overal toegestaan waar een letterlijke tekst is toegestaan in SQL-instructies.

Parameters kunnen worden voorafgegaan door :, @of $.

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

Zie Gegevenstypen voor meer informatie over hoe .NET-waarden worden toegewezen aan SQLite-waarden.

Truncatie

Gebruik de Size eigenschap om TEKST- en BLOB-waarden af te kapen.

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

Alternatieve typen

Soms wilt u mogelijk een alternatief SQLite-type gebruiken. Doe dit door de SqliteType eigenschap in te stellen.

De volgende alternatieve typetoewijzingen kunnen worden gebruikt. Zie Gegevenstypen voor de standaardtoewijzingen.

Weergegeven als SqliteType Opmerkingen
Char Geheel getal UTF-16
DateOnly Real Juliaanse dagwaarde
Datum en tijd Real Juliaanse dagwaarde
DateTimeOffset Real Juliaanse dagwaarde
Guid Blob
TimeOnly Real In dagen
TimeSpan Real In dagen
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;

Uitvoerparameters

SQLite biedt geen ondersteuning voor uitvoerparameters. Retourneert in plaats daarvan waarden in de queryresultaten.

Zie ook