2012-10-03 129 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]

相关问题