表示するデータを選択するためにグリッドビューで使用されているクエリを使用しています。
SELECT [Theme].[PK_Theme], [Theme].[Name], [ThemeType].[Type]
FROM [Theme]
LEFT OUTER JOIN [ThemeType]
ON [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType]
JOIN [ProductTheme] ON [ProductTheme].[ThemeId]=[Theme].[PK_Theme]
WHERE ProductTheme.ProductID LIKE @productParam
AND ProductTheme.ThemeId = Theme.PK_Theme
AND COALESCE([THEME].[THEMETYPEID], 'null') LIKE @assignedParam
GROUP BY [Theme].[Name], [ThemeType].[Type], [Theme].[PK_Theme]
ORDER BY CASE WHEN [ThemeType].[Type] IS NULL THEN 0 ELSE 1 END, [Theme].[Name]
列 [THEME].[THEMETYPEID] は以前は varchar(50) でしたが、int に変更されました。
私は今、このエラーが発生しています:
Conversion failed when converting the varchar value 'NULL' to data type int.
奇妙なことの1つは、上記のステートメントが機能するサーバーに直接クエリを実行することです(値のパラメーターを変更します)が、サーバーコントロールでは機能しません。
更新された列では、NULL が許可されます。この状況で int の Null をチェックし、クエリを以前と同じように機能させるにはどうすればよいですか?
編集両方のパラメーターに「%」が割り当てられている場合、結果は次のようになります。