Parametreler
Parametreler SQL ekleme saldırılarına karşı koruma sağlamak için kullanılır. Kullanıcı girişini SQL deyimleriyle birleştirmek yerine, girdinin yalnızca değişmez değer olarak ele alınıp hiçbir zaman yürütülmediğinden emin olmak için parametreleri kullanın. SQLite'te parametrelere genellikle SQL deyimlerinde bir değişmez değere izin verilen her yerde izin verilir.
Parametreler , @
veya $
ile ön eklenebilir:
.
command.CommandText =
@"
INSERT INTO user (name)
VALUES ($name)
";
command.Parameters.AddWithValue("$name", name);
.NET değerlerinin SQLite değerlerine nasıl eşlendiği hakkında ayrıntılı bilgi için bkz . Veri türleri .
Kesilme
METNEÇEVİr Size ve BLOB değerlerini kesme özelliğini kullanın.
// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;
Alternatif türler
Bazen alternatif bir SQLite türü kullanmak isteyebilirsiniz. Özelliğini ayarlayarak SqliteType bunu yapın.
Aşağıdaki alternatif tür eşlemeleri kullanılabilir. Varsayılan eşlemeler için bkz . Veri türleri.
Değer | SqliteType | Açıklamalar |
---|---|---|
Char | Tamsayı | UTF-16 |
DateOnly | Gerçek sayı | Jülyen gün değeri |
DateTime | Gerçek sayı | Jülyen gün değeri |
DateTimeOffset | Gerçek sayı | Jülyen gün değeri |
GUID | Blob | |
TimeOnly | Gerçek sayı | Gün olarak |
TimeSpan | Gerçek sayı | Gün olarak |
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;
Çıkış parametreleri
SQLite, çıkış parametrelerini desteklemez. Bunun yerine sorgu sonuçlarındaki değerleri döndürür.