Parámetros
Los parámetros se usan como protección contra ataques por inyección de código SQL. En lugar de concatenar la entrada proporcionada por el usuario con instrucciones SQL, use los parámetros para asegurarse de que la entrada solo se trate como un valor literal y no se ejecute nunca. En SQLite, los parámetros se permiten normalmente en cualquier lugar en el que se permita un literal en las instrucciones SQL.
Los parámetros pueden tener como prefijo :
, @
o $
.
command.CommandText =
@"
INSERT INTO user (name)
VALUES ($name)
";
command.Parameters.AddWithValue("$name", name);
Vea Tipos de datos para obtener más información sobre cómo se asignan los valores de .NET a los de SQLite.
Truncamiento
Use la propiedad Size para truncar los valores TEXT y BLOB.
// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;
Tipos alternativos
En ocasiones, es posible que quiera usar un tipo de SQLite alternativo. Puede hacerlo si establece la propiedad SqliteType.
Se pueden usar las siguientes asignaciones de tipos alternativos. Para las asignaciones predeterminadas, vea Tipos de datos.
Valor | SqliteType | Comentarios |
---|---|---|
Char | Integer | UTF-16 |
DateOnly | Real | Valor de día juliano |
DateTime | Real | Valor de día juliano |
DateTimeOffset | Real | Valor de día juliano |
GUID | Blob | |
TimeOnly | Real | En días |
TimeSpan | Real | En días |
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;
Parámetros de salida
SQLite no admite parámetros de salida. En su lugar, devuelve los valores de los resultados de la consulta.