2012-10-23 46 views
1

我有一個頁面來查看所有的大學,我想這個頁面來查看過濾後的數據爲每個城市,我添加到SQL語句:讓ASP.NET SelectParameters接受空值

WHERE (Cit_Id = @Unv_CitId OR @Unv_CitId IS NULL) 

,並設置默認值的@Unv_CitId參數爲NULL,但我得到錯誤,

我該如何解決這個問題?

+2

什麼是錯誤?請分享完整的查詢,而不只是'where'條款。 – yogi

+0

向我們展示您收到的例外情況。 –

回答

3

您應該指定值DBNull.Value而不是null

+0

謝謝,但是我得到了這個錯誤「將nvarchar值'DB.Null'轉換爲數據類型int時轉換失敗。」 –

+0

是CityId允許爲空嗎? –

+0

是的,這是連接到城市的外鍵 –

0

你可以試試這個

where (Cit_Id = isdbnull(@Unv_CitId)?null:@unv_citId 
+0

現在沒事了,看我的回答 –

0

我不是100%肯定你的意圖,但對於這樣的事情:

WHERE (Cit_Id = @Unv_CitId OR Cit_Id IS NULL) 

原始查詢中看起來有點古怪與@Unv_CitId IS NULL有:此條款不檢查字段,僅針對傳入的值。

+0

現在沒關係,看我的回答 –

0

是的,現在可以, 我設置了SqlDataSource的Canc elSelectOnNullParameter屬性設爲False,並刪除參數,而在申報過程參數如下圖所示

@Unv_CitId int NULL 

所以varibale將接受空值以及

0

delclare @Unv_CitId爲空的默認值。