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.