-1

提供されたuniqueidentifier Idに基づいてテーブルを選択するクエリがあるため、IDを値に提供すると結果が返されますが、以下のように渡すとエラーメッセージが表示されます。この場合、Convert または Cast を使用してこの問題を解決する方法を提案してください。ありがとう

SELECT * FROM TBL WHERE ID=''
4

2 に答える 2

2

@idが文字列パラメーターであり、列が null 可能でないと仮定すると、次のIDような愚かなことを行うことができます。

SELECT * FROM TBL WHERE ID = COALESCE(NULLIF(@id, ''), ID);

NULLしかし、空の文字列ではなく値がない場合は、実際に渡す必要があります。これは、そもそも文字列パラメーターであってはなりません。

于 2012-06-27T14:23:58.040 に答える
0

この回答のコメントによると、解決策は次のようになります (疑似コード):

if textbox1.Text.ToString().Equals('') {
    SELECT * FROM TBL
}
else {
    SELECT * FROM TBL WHERE ID='"+textbox1.text+"' 
}

IFC# アプリケーションで実行できます。

于 2012-06-27T13:53:03.977 に答える