Bagikan melalui


Parameter

Parameter digunakan untuk melindungi dari serangan injeksi SQL. Daripada menggabungkan input pengguna dengan pernyataan SQL, gunakan parameter untuk memastikan input hanya diperlakukan sebagai nilai literal dan tidak pernah dieksekusi. Di SQLite, parameter biasanya diizinkan di mana saja harfiah diizinkan dalam pernyataan SQL.

Parameter dapat diawali dengan :, @, atau $.

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

Lihat Jenis data untuk detail tentang bagaimana nilai .NET dipetakan ke nilai SQLite.

Pemotongan

Gunakan Size properti untuk memotong nilai TEXT dan BLOB.

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

Jenis alternatif

Terkadang, Anda mungkin ingin menggunakan jenis SQLite alternatif. Lakukan ini dengan mengatur SqliteType properti.

Pemetaan jenis alternatif berikut dapat digunakan. Untuk pemetaan default, lihat Jenis data.

Nilai SqliteType Keterangan
Char Bilangan bulat UTF-16
DateOnly Riil Nilai hari Julian
DateTime Riil Nilai hari Julian
DateTimeOffset Riil Nilai hari Julian
Guid Blob
TimeOnly Riil Selama beberapa hari
TimeSpan Riil Selama beberapa hari
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;

Parameter output

SQLite tidak mendukung parameter output. Mengembalikan nilai dalam hasil kueri sebagai gantinya.

Lihat juga