2012-10-03 124 views
3

選擇數據我有兩個DB的,並且獲得2010年VS來自不同數據庫

使用實體數據模型/數據集的應用程序,我做我的全部存儲過程分貝(A),然後使用exec語句在DB(B)中返回數據。數據返回正常,但是每當我運行該程序時,我都會在C#中遇到以下異常:

'GetAverageTimes_Result'上的'AbandonTime'屬性無法設置爲'String'值。您必須將此屬性設置爲'Decimal'類型的非空值。

我已經在數據模型中檢查過任何地方,值是十進制的,並設置爲可爲空等等,即使我將此更改爲任何其他類型或不可爲空的值,我仍然會得到相同的錯誤。這令人難以置信的令人沮喪。

任何幫助將不勝感激。

+0

'GetAverageTimes_Result ' 看起來像? – Pawel

+0

請爲我們粘貼GetAverageTimes_Result存儲過程的內容。 – Sev

回答

0

如果序列是從每一個數據庫主表,那麼你可以加入表使用完全合格的名字聯繫在一起:

CREATE VIEW vWhatever

AS

SELECT(不管你要選擇)

FROM [數據庫A] [架構 - 通常DBO。.DSNA_tblMaiin AS一個

JOIN [數據庫B] [DBO] .DSNB_tblMaiin AS B關於a.Serialnumber = b.SerialNumber

JOIN [數據庫C]。[DBO] .DSNC_tblMaiin爲C ON a.SerialNumber = c.SerialNumber

WHERE(不管你想要通過篩選)

GO

如果資產在表中的一個,但不是所有的三個(而你不知道是哪一個),你可以使用視圖中的UNION來完成它 - 它將基本上將所有三個表組合在一起,追加指定的字段(具有相同的數據類型),直到您有一個大的「虛擬表」ex:

CREATE VIEW vWhatever

AS

SELECT COL1,COL2,的SerialNumber等

FROM [數據庫A]。[DBO] .DSNA_tblMaiin

UNION ALL

SELECT col1,col2,SerialNumber等

FROM [數據庫B]。[d博] .DSNB_tblMaiin

UNION ALL

SELECT COL1,COL2,的SerialNumber等

FROM [數據庫C]。[DBO]。DSNC_tblMaiin

GO

點符號是你正在看什麼。如果您將查詢擴展到另一臺服務器,它將只是[ServerName]。[DatabaseName]。[ObjectSchema]。[ObjectName]而不是[DatabaseName]。[ObjectSchema]。[ObjectName]

相關問題