検索するキーワードを指定してデータベース内の行を検索させたいと思っています。このキーワードを調べたいフィールドがいくつかありますが、そのうちの1つは固有の識別子です。問題は、キーワードが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コマンドを記述しないでください
keyword
がGUIDでない場合にSQL SELECT文が失敗しないようにするにはどうすればよいですか?
+1セキュリティ警告の場合 – Colin
単にクエリが実行される前に 'keyword'が有効なGUID *であるかどうかをチェックするのはなぜですか?あなたは '@"^[0-9A-F] {8} - [0-9A-F] {4} - [0-9A-F] {4} - [0-9A-F]のような正規表現を使うことができます。 {4} - [0-9A-F] {12} $ "です。 – ruakh