我有一個頁面來查看所有的大學,我想這個頁面來查看過濾後的數據爲每個城市,我添加到SQL語句:讓ASP.NET SelectParameters接受空值
WHERE (Cit_Id = @Unv_CitId OR @Unv_CitId IS NULL)
,並設置默認值的@Unv_CitId參數爲NULL,但我得到錯誤,
我該如何解決這個問題?
我有一個頁面來查看所有的大學,我想這個頁面來查看過濾後的數據爲每個城市,我添加到SQL語句:讓ASP.NET SelectParameters接受空值
WHERE (Cit_Id = @Unv_CitId OR @Unv_CitId IS NULL)
,並設置默認值的@Unv_CitId參數爲NULL,但我得到錯誤,
我該如何解決這個問題?
您應該指定值DBNull.Value
而不是null
。
謝謝,但是我得到了這個錯誤「將nvarchar值'DB.Null'轉換爲數據類型int時轉換失敗。」 –
是CityId允許爲空嗎? –
是的,這是連接到城市的外鍵 –
你可以試試這個
where (Cit_Id = isdbnull(@Unv_CitId)?null:@unv_citId
現在沒事了,看我的回答 –
我不是100%肯定你的意圖,但對於這樣的事情:
WHERE (Cit_Id = @Unv_CitId OR Cit_Id IS NULL)
原始查詢中看起來有點古怪與@Unv_CitId IS NULL
有:此條款不檢查字段,僅針對傳入的值。
現在沒關係,看我的回答 –
是的,現在可以, 我設置了SqlDataSource的Canc elSelectOnNullParameter屬性設爲False,並刪除參數,而在申報過程參數如下圖所示
@Unv_CitId int NULL
所以varibale將接受空值以及
delclare @Unv_CitId爲空的默認值。
什麼是錯誤?請分享完整的查詢,而不只是'where'條款。 – yogi
向我們展示您收到的例外情況。 –