參數可用來防範 SQL 插入式攻擊。 不要與 SQL 語句串連使用者輸入,而是使用參數來確保輸入只會被視為常值,且永遠不會執行。 在 SQLite 中,參數通常會允許在 SQL 語句中允許常值的任何位置。
參數的前置詞
:
可以是 、
@
或
$
。
command.CommandText =
INSERT INTO user (name)
VALUES ($name)
command.Parameters.AddWithValue("$name", name);
如需如何將 .NET 值對應至 SQLite 值的詳細資訊,請參閱資料類型。
Size使用 屬性來截斷 TEXT 和 BLOB 值。
// Truncate name to 30 characters
command.Parameters.AddWithValue("$name", name).Size = 30;
有時候,您可能想要使用替代的 SQLite 類型。 藉由設定 屬性來執行 SqliteType 此動作。
您可以使用下列替代類型對應。 如需預設對應,請參閱 資料類型。
SqliteType
AND julianday('now') - julianday(started) > $expected
// Convert TimeSpan to days instead of text
command.Parameters.AddWithValue("$expected", expected).SqliteType = SqliteType.Real;
SQLite 不支援輸出參數。 改為傳回查詢結果中的值。