2009-08-18 124 views
0

我已經使用C#中的報告嚮導構建了一個報告,並且可以在ReportViewer中看到我的報告。我的問題是我有兩個相關的表。第一個表中的列的值是另一個表上的外鍵。我在該專欄中看到的只是外鍵。我希望看到另一個表中的相應值。使用外鍵獲取來自其他表的值

如何從第二個表中看到列的值?

回答

-1

將項目從表中拖出來的地方是外鍵,而不是它的本地位置。

+0

我這樣做,但我的問題沒有解決。 – 2009-08-23 22:12:11

1

聽起來像你可能需要一個深入報表 Create Basic Drilldown Report

+0

我的視覺體育場沒有它,只有報告,嚮導報告和水晶報告,我該怎麼辦? – 2009-08-25 18:30:56

+0

您可以嘗試使用vs bi模板創建報告,然後將rdl文件導入到您的c#項目中。 – DForck42 2009-09-04 19:40:45

1

關於呈現結果的控制......它有它的列手工綁定/是設置爲自動綁定?

1

將您的查詢更改爲涉及適當表中的字段的查詢。

SELECT t1.*, t2.value 
FROM table1 t1 
    JOIN table2 t2 ON t1.t2id = t2.id 

但是,如果你不能,因爲數據源是分開的,那麼你會想要另一個選項。

假設您有兩個來自不同數據源的數據集。

在報表中放置一個表以顯示來自DataSet1(或其它稱爲)的信息。然後將一個矩形放置在您的文本框之一的位置,然後在其中放置一個表,將其附加到DataSet2。然後在此表上放置過濾器,以便它僅顯示DataSet2中與DataSet1中的相應值對應的記錄。

或者,等待SQL Server 2008 R2(當前位於CTP中),它提供了一個用於此目的的查找功能。

羅布

4

你應該對外國鍵列剛剛加入:

SELECT 
    a.*,b.YourNeededColumnHere 
    FROM TableA   a 
     INNER JOIN TableB b ON a.columnX=b.columnX 

但是,如果你有在Reporting Services這樣的問題,只需創建一個視圖:

CREATE VIEW CombinedAB 
AS 

SELECT 
    a.*,b.YourNeededColumnHere 
    FROM TableA   a 
     INNER JOIN TableB b ON a.columnX=b.columnX 

GO 

您現在應該可以運行您的報告CombinedAB視圖爲:

SELECT 
    * 
    FROM CombinedAB 
    WHERE ...your conditions here... 
+0

我無法理解它。你編寫的代碼非常混亂。 – 2009-08-29 18:35:06