提供されたuniqueidentifier Idに基づいてテーブルを選択するクエリがあるため、IDを値に提供すると結果が返されますが、以下のように渡すとエラーメッセージが表示されます。この場合、Convert または Cast を使用してこの問題を解決する方法を提案してください。ありがとう
SELECT * FROM TBL WHERE ID=''
提供されたuniqueidentifier Idに基づいてテーブルを選択するクエリがあるため、IDを値に提供すると結果が返されますが、以下のように渡すとエラーメッセージが表示されます。この場合、Convert または Cast を使用してこの問題を解決する方法を提案してください。ありがとう
SELECT * FROM TBL WHERE ID=''
@id
が文字列パラメーターであり、列が null 可能でないと仮定すると、次のID
ような愚かなことを行うことができます。
SELECT * FROM TBL WHERE ID = COALESCE(NULLIF(@id, ''), ID);
NULL
しかし、空の文字列ではなく値がない場合は、実際に渡す必要があります。これは、そもそも文字列パラメーターであってはなりません。
この回答のコメントによると、解決策は次のようになります (疑似コード):
if textbox1.Text.ToString().Equals('') {
SELECT * FROM TBL
}
else {
SELECT * FROM TBL WHERE ID='"+textbox1.text+"'
}
IF
C# アプリケーションで実行できます。