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.