读书人

c#net 跨数据库有关问题

发布时间: 2012-01-16 23:36:51 作者: rapoo

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

读书人网 >C#

热点推荐