我有一个问题:
<asp:SqlDataSource runat="server" ID="SqlDataSource1"
ConnectionString="Dsn=Xdb;uid=xxx;pwd=xxxxxxx" ProviderName="System.Data.Odbc"
SelectCommand="SELECT XReqOrders.LoadNum, XReqOrders.StopSeq, XRecPkgs.DeliveryTime,
XRecActivity.Address, XReqOrders.OrderOrTripOrRGA, XReqPkgs.Barcode,
XReqPkgs.Description, XRecPkgs.IsDelivered, XRecPkgs.IsOnStop, YDelInfo.DeliveryDate
FROM (((XReqOrders INNER JOIN XReqPkgs ON XReqOrders.LoadNumberOrderNumber = XReqPkgs.LoadNumberOrderNumber)
LEFT JOIN XRecPkgs ON XReqPkgs.Barcode = XRecPkgs.Barcode)
LEFT JOIN XRecActivity ON XRecPkgs.TranId = XRecActivity.TranId)
INNER JOIN YDelInfo ON XReqOrders.OMID = YDelInfo.OMID
ORDER BY XReqOrders.StopSeq, XRecPkgs.DeliveryTime">
</asp:SqlDataSource>
“X”表来自一个数据源而“Y”表来自另一个......但是数据源之间存在连接。我似乎无法弄清楚如何输入两个不同的连接字符串来运行它。
ConnectionString =“Dsn = Xdb; uid = xxx; pwd = xxxxxxx”ProviderName =“System.Data.Odbc” ConnectionString =“Dsn = Ydb; uid = xxx; pwd = xxxxxxx”ProviderName =“System.Data.Odbc”
这可能......我只是错过了一些东西吗?
答案 0 :(得分:3)
您无法从两个不同的数据库中加入表。根据您正在使用的数据库引擎,您可以在一个指向另一个数据库中的表的数据库中设置“虚拟”或“链接”表,并以此方式进行JOIN。否则,您唯一的选择是在另一个数据库中制作您需要加入的表的副本,并加入到副本中。
答案 1 :(得分:1)
实际的数据库查询是在服务器端运行,而不是在客户端运行,因此没有“快速简便”的方法来加入这两个表。
可能的选择是:
1)在指向另一台服务器的SQL服务器之一上设置“链接服务器”(MSSQL术语,不确定MySql或Oracle中的相应术语,或者即使它们受支持)。
2)个人是否单独选择业务对象,然后在业务逻辑中而不是在数据库中进行连接,手动旋转for循环中的记录或使用.NET中的LINQ等技术。
答案 2 :(得分:0)
正如其他人所说,你必须设置一个&#34;链接服务器&#34;