2009-07-03 29 views
0

我有一個TableAdapter從stored procedure中獲取行。出於某種原因,當沒有結果時,TableAdapter返回值爲0而不是NULL的INT。存儲過程有NOCOUNT ONTableAdapter返回ASP.NET中的幻像結果

與此問題是,我有一個ListView在前端EmptyDataTemplate,它不顯示。當我在查詢分析器中運行查詢時,發現它返回0而不是NULL。

存儲過程有一個簡單的'SELECT * FROM WHERE'和一個INT參數(NOT輸出)。在查詢分析器中運行它,我沒有得到預期的輸出。

發生了什麼事?

回答

1

它看起來像存儲過程返回結果。所有存儲過程都會返回結果代碼。這很可能是這個。

+0

其實,我已經證實情況並非如此。在查詢分析器中運行查詢並沒有返回任何結果,同樣,運行其他未在數據集設計器中產生任何結果的SP也沒有導致這種幻影結果。 – 2009-07-04 07:29:56

1

檢查查詢的tableAdapter的ExcuteMode屬性。確保它被設置爲「Reader」。有3個選項ExecuteMode:

  1. 閱讀器 - 返回數據
  2. 標量的行 - 返回一個值
  3. NonQuery - 返回一個int與受影響

另外,還要檢查參數的行數收集返回值參數。它應該有適當的AllowDBNull(如果允許爲空,則爲true),方向(ReturnValue)。這個參數應該保存你的SP的結果。在你的例子中,它將是空的,因爲沒有記錄返回。