日期:2014-05-19  浏览次数:21145 次

c#.net 跨数据库问题
csdn上的例子

    Dim       Export_Str      
    Dim       rsExport       As       New       ADODB.Recordset      
    Dim       conn       As       New       ADODB.Connection      
    conn.Open       "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data       Source=C:\temp1.mdb; "      
    Export_Str       =       "select       *       from       [;database=C:\temp2.mdb].tempB       as       a,       tempA       as       b       where       a.id=b.id "      
    Set       rsExport       =       conn.Execute(Export_Str)      
    Do       While       Not       rsExport.EOF      
                    Debug.Print       rsExport(0)       &       "       ";       rsExport(1)      
                    rsExport.MoveNext      
    Loop


在.net中这样用  

  String   str=   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=e:\\test1.mdb; ";
  OleDbConnection   con   =   new   OleDbConnection(str);
  con.Open();
  OleDbCommand   sql   =   new   OleDbCommand( "select   *   from   [;database   =   e:\\test2.mdb].test2 ",   con);

提示错误,我理解是
OleDbCommand   sql   =   new   OleDbCommand( "select   *   from   test     UNION   ALL   select   *   from   [;database   =   e:\\test2.mdb].test2 ",   con);

后的连接con中没有指定另个数据库test2.mdb


请问该怎么在.net中跨数据库进行操作

------解决方案--------------------
con连的是test1.mdb
怎么又操作test2.mdb了呢
test1.mdb能连上,那么test2.mdb也应该能连上啊
再连一遍

con.ConnectionString.Replace( "test1.mdb ", "test2.mdb ");
OleDbCommand sql = new OleDbCommand( "select * from test UNION ALL select * from test2 ", con);

------解决方案--------------------
单个查询 完成后放到1个DataSet中来,然后根据条件在filter 可行
------解决方案--------------------
两个数据库的连接要用两个con,然后放到一个DATASET里,进行关联或操作。
------解决方案--------------------
建议数据分别取出放入DataSet中,对于数据的合并可以通过DataSet.Merge或DataTable.Merge方法来实现,也可以通过Ado.net表达式来进行调解。
http://www.microsoft.com/china/MSDN/library/data/dataAccess/ADONETEXP.mspx