问题描述:为查询出在苏州分公司生产所用到的MAC号有多少与台湾总公司生产所用到的MAC号重复,我需要分别连接两地的DB进行查询,并在DataGridView中显示出来。我希望实现的效果类似于:“select mac from TableA(台湾数据库) where mac in (select mac form TableB(苏州数据库) where wo_no='XXX')”。请各位帮忙看看如何才能实现这种效果(C#解决),急切等待中...!问题解决立即结贴!
调试欢乐多
给另一个数据库加一个别名server2用这个存储过程
sp_addlinkedserverselect a.mac
from db1.dbo.tableA as a
inner join server2.db2.dbo.tableB as b
on a.mac = b.mac
然后再查
本地就可使用select mac from TableA where mac in (select mac form TableB where wo_no='XXX')
DataTable 苏州公司t1;
DataTable 台湾公司t2;
//分别为两个datatable取资料
....//比较
var query = from lt1 in 苏州公司t1.AsEnumerable()
from lt2 in 台湾公司t2.AsEnumerable()
where lt1["mac"].Equals(lt2["mac"])
select lt1;
另外希望大家能提供一个最简单实用,效率又高的方法。(希望能有相关Source Code借鉴)
因为我这边查询会比较频繁,所以查询的速度是比较重要的一个考虑方面。
webservice比较好
1 安全: 用VPN
2 效率:
方法1 :把台湾数据库发布到苏州数据库的某个表,然后再做查询,那查询谁都会写!
至于发布,MSSQL的【复制】发布及订阅功能
方法2: 写个JOB间隔地把台湾数据库拷贝到苏州数据库的某个表,然后再做查询。
方法3: 写程序从台湾数据库查询记录导入到某个表,然后再做查询。 以上方法的前提是VPN!