Compartilhar via


Parâmetros

Os parâmetros são usados para proteção 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 só seja tratada como um valor literal, não sendo 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);

Confira Tipos de dados para detalhes sobre como os valores .NET são mapeados para valores SQLite.

Truncation

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 pode ser útil usar um tipo de SQLite alternativo. Faça isso definindo a propriedade SqliteType.

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

Valor SqliteType Comentários
Char Integer UTF-16
DateOnly Real Valor do dia de Julian
Datetime Real Valor do dia de Julian
DateTimeOffset Real Valor do dia de Julian
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. Retorne os valores nos resultados da consulta, em vez disso.

Confira também