すべての大学を表示する 1 つのページがあり、このページで都市ごとにフィルター処理されたデータを表示したいので、SQL ステートメントに次のように追加しました。
WHERE (Cit_Id = @Unv_CitId OR @Unv_CitId IS NULL)
@Unv_CitId パラメーターの DefaultValue を NULL に設定しましたが、エラーが発生しました。
この問題を解決するにはどうすればよいですか?
DBNull.Value
ではなく値を割り当てる必要がありますnull
。
はい、問題ありません。SqlDataSource の CancelSelectOnNullParameter プロパティを False に設定し、パラメータの defaultValue を削除します
私はあなたの意図を100%確信しているわけではありませんが、次のようなものはどうですか:
WHERE (Cit_Id = @Unv_CitId OR Cit_Id IS NULL)
元のクエリは少し奇妙に見えます@Unv_CitId IS NULL
。この句はフィールドに対してチェックしていません。渡された値に対してのみチェックしています。
あなたはこれを試すことができます
where (Cit_Id = isdbnull(@Unv_CitId)?null:@unv_citId