Partager via


Paramètres

Les paramètres sont utilisés pour se protéger contre les attaques par injection SQL. Au lieu de concaténer l’entrée utilisateur avec des instructions SQL, utilisez des paramètres pour vous assurer que l’entrée n’est jamais traitée comme une valeur littérale et jamais exécutée. Dans SQLite, les paramètres sont généralement autorisés partout où un littéral est autorisé dans les instructions SQL.

Les paramètres peuvent être préfixés par :, @, ou $.

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

Pour plus d’informations sur la façon dont les valeurs .NET sont mappées aux valeurs SQLite, consultez les types de données .

Troncation

Utilisez la Size propriété pour tronquer les valeurs TEXT et BLOB.

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

Autres types

Parfois, vous souhaiterez peut-être utiliser un autre type SQLite. Pour ce faire, définissez la SqliteType propriété.

Vous pouvez utiliser les mappages de types de remplacement suivants. Pour connaître les mappages par défaut, consultez Types de données.

Valeur SqliteType Remarques
Carboniser Nombre entier UTF-16
DateOnly Réel Valeur de jour du calendrier julien
Date et heure Réel Valeur de jour du calendrier julien
DateTimeOffset Réel Valeur de jour du calendrier julien
Guide Objet blob
TimeOnly Réel En jours
TimeSpan Réel En jours
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;

Paramètres de sortie

SQLite ne prend pas en charge les paramètres de sortie. Retournez plutôt des valeurs dans les résultats de la requête.

Voir aussi