2011-09-02 26 views
0

我有一個綁定到SqlDataSource的一個DropDownList。我正在SQL Management Studio中運行完全相同的查詢,並且它會提取所有記錄,但是當我在SQLDataSource中執行它時,它不會提取我剛剛添加的兩條記錄。爲什麼?下拉列表的SqlDataSource不拉*所有*記錄

SELECT [RepID], [ManagerID] 
FROM MyDB1.dbo.Reps 
WHERE [Role] = 'Manager' AND ISNULL(RepType, 'Account Exec') <> 'House Account Exec' 

union 

SELECT [RepID], [ManagerID] 
FROM MyDB2.dbo.Reps 
WHERE [Role] = 'Manager' AND ISNULL(RepType, 'Account Exec') <> 'House Account Exec' 

問題行似乎是RepType字段。我確實驗證了它是NULL爲我想拉的記錄。我花了一個多小時。任何人都會遇到這樣的事情?有什麼建議麼?

從SMSS

RepID  ManagerID 
----------- ----------- 
1   1 
9   9 
10   10  <- this guy does not show in DropDown 
42   42 
333   333  <- and this guy 
1026  1026 
1065  1065 
2014  1 
3009  3009 
3025  3025 
5000  5000 
5002  5002 
6000  6000 
9000  9000 

這不是唯一的問題輸出。即使刪除了ISNULL(RepType,'Account Exec')條件,它仍然不會拉取repID = 333,而它會執行pul repID = 10。

我發現那是什麼有REPID = 10的重複,但它仍然應該表現在SSMS並在下拉列表的方式相同。

+0

是,數據庫名稱被綁定到表名[數據庫1] .dbo.reps –

+0

你能張貼文本結果/輸出/截圖從SSMS上述查詢的? –

+0

已發佈SSMS輸出。 –

回答

1

這種行爲不應該是這樣的。這可能是一個錯誤,但我發現迄今爲止

  1. rep RepID = 10表示兩個記錄exhisted,這可能是一個問題。

  2. 在兩個表,一個表有reptype =「家帳戶Exec的」,而在其他情況下爲null。當在SMSS和SQLDatasource中執行查詢時,這種情況以不同的方式進行交互。

還有些東西我無法解決。例如repID = 333,出現在SMSS中,但不是下拉列表。

0

推薦您的SQL查詢轉換成一個存儲過程,而不是你的即席SQL語句。