我想通過指定要查找的關鍵字來讓用戶搜索數據庫中的行。有幾個字段我想查找這個關鍵字,其中之一是唯一標識符。問題是,如果關鍵字是不是一個GUID,我得到了以下錯誤消息:關鍵字搜索包含Uniqueidentifier字段
Conversion failed when converting from a character string to uniqueidentifier
我使用運行搜索的SQL看起來是這樣的:
// do not use
string sql = @"SELECT *
FROM [MyTable]
WHERE [MyTable].[TableID] = '" + keyword + "'";
警告:這只是示例代碼 - 請勿像這樣編寫sql命令,因爲它會產生安全風險
如何編寫我的SQL select語句,使其在keyword
不是GUID時不會失敗?
+1爲安全警告 – Colin 2012-03-04 02:34:37
爲什麼在運行查詢之前不簡單檢查'keyword'是否是有效的GUID *?你可以使用一個正則表達式,比如'@「^ [0-9A-F] {8} - [0-9A-F] {4} - [0-9A-F] {4} - [0-9A-F] {4} - [0-9A-F] {12} $「'。 – ruakh 2012-03-04 02:50:53