簡體   English   中英

c#強類型數據集,其表適配器未返回預期結果

[英]c# strongly typed dataset whose table adapter is not returning expected result

我有一個C#應用程序(使用VS 2010 premium)實現一個連接到MS Access 2003數據庫的強類型數據集。 我在這個數據集中實現了一個表適配器,其SQL腳本是:

SELECT [ID], [Name], [Created By]
FROM [Table Group]
WHERE [Created By] = ?
AND [ID] IN (SELECT [Group ID] FROM [Table Clustering] WHERE [Cluster ID] = ?)
ORDER BY [Name]

問題是它不返回任何東西,但據說它應該(我在我的數據庫中有樣本數據)。 我已經嘗試在MS Access中實現相同的腳本(用真實數據替換?)並返回我期望的數據。

我通過刪除"WHERE [Cluster ID] = ?" 在嵌入式SELECT語句中,它返回數據,但這不是我需要的。

我還做了另一個實驗,取代了? 在帶有實際[Cluster ID]的嵌入式SELECT語句中,它返回了數據,但這又不是我需要的。

那么表適配器中的SQL腳本有什么問題呢? 它能夠在SELECT中實現SELECT嗎? 而且,它能夠實現一個? 在SELECT中的SELECT? 怎么樣?

謝謝! =)

我正在采用的強類型數據集

我用來創建表適配器的SQL構建器

正如預期的那樣,IDE自動為我所做的表適配器生成一個方法(檢索數據),我不需要在代碼中手動創建一個SQL腳本...為每個人的信息(如果你不熟悉) ,生成的方法請求兩個參數(如預期的那樣),一個用於[Created By],一個用於[Cluster ID] ...從這里開始,請參考我上面發布的問題。 :d

我認為這是一個IDE錯誤。 具體來說,你有兩個參數,所以param1和param2按順序排列。 你會認為“?” 占位符的順序相同,但是當您執行查詢並且IDE要求您填寫值時,最后一個“?” 是第一個參數(集群ID),第一個參數(CreatedBy)是第二個參數。 這張照片顯示了我的意思:

VS2012

在圖像中,ID是第一行,而事件計數是第二行,即使TableAdaptor將它們作為事件計數優先和ID秒。 我沒有嘗試通過程序傳遞params,但它似乎是一個IDE將以這種方式工作的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM