Compartilhar via


Parâmetros

Os parâmetros são usados para proteger contra ataques de injeção de SQL. Em vez de concatenar a entrada do usuário com instruções SQL, use parâmetros para garantir que a entrada seja tratada apenas como um valor literal e nunca executada. No SQLite, os parâmetros normalmente são permitidos em qualquer lugar em que um literal é permitido em instruções SQL.

Os parâmetros podem ser prefixados com :, @ou $.

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

Consulte os tipos de dados para obter detalhes sobre como os valores do .NET são mapeados para valores SQLite.

Truncagem

Use a propriedade Size para truncar valores TEXT e BLOB.

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

Tipos alternativos

Às vezes, talvez você queira usar um tipo SQLite alternativo. Faça isso definindo a SqliteType propriedade.

Os mapeamentos de tipo alternativo a seguir podem ser usados. Para os mapeamentos padrão, consulte Tipos de dados.

Valor SqliteType Observações
Queimar Número Inteiro UTF-16
DateOnly Real Valor do dia juliano
Data e Hora Real Valor do dia juliano
DateTimeOffset (representa uma data e hora com um desvio em relação ao horário UTC) Real Valor do dia juliano
GUID BLOB
TimeOnly Real Em dias
TimeSpan Real Em dias
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 saída

O SQLite não dá suporte a parâmetros de saída. Em vez disso, retorna valores nos resultados da consulta.

Consulte também