一个实际工作中遇到的C#问题

bestye 2009-04-27 09:13:05
问题描述:为查询出在苏州分公司生产所用到的MAC号有多少与台湾总公司生产所用到的MAC号重复,我需要分别连接两地的DB进行查询,并在DataGridView中显示出来。我希望实现的效果类似于:“select mac from TableA(台湾数据库) where mac in (select mac form TableB(苏州数据库) where wo_no='XXX')”。请各位帮忙看看如何才能实现这种效果(C#解决),急切等待中...!问题解决立即结贴!
...全文
112 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
only_delusion 2009-04-27
  • 打赏
  • 举报
回复
来顶下吧 赚今天的资源分
Sysping1 2009-04-27
  • 打赏
  • 举报
回复
我觉得必须考虑2方面问题:安全,效率
1 安全: 用VPN
2 效率:
方法1 :把台湾数据库发布到苏州数据库的某个表,然后再做查询,那查询谁都会写!
至于发布,MSSQL的【复制】发布及订阅功能
方法2: 写个JOB间隔地把台湾数据库拷贝到苏州数据库的某个表,然后再做查询。
方法3: 写程序从台湾数据库查询记录导入到某个表,然后再做查询。

以上方法的前提是VPN!

快40的码农 2009-04-27
  • 打赏
  • 举报
回复
从安全方面考虑,楼主的做法肯定有问题.
webservice比较好
bestye 2009-04-27
  • 打赏
  • 举报
回复
多谢大家提供的方法,等会我试一下。
另外希望大家能提供一个最简单实用,效率又高的方法。(希望能有相关Source Code借鉴)
因为我这边查询会比较频繁,所以查询的速度是比较重要的一个考虑方面。
Garnett_KG 2009-04-27
  • 打赏
  • 举报
回复

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;


Garnett_KG 2009-04-27
  • 打赏
  • 举报
回复
先将两个数据取回到datatable中,然后用linq可解决。
wuyq11 2009-04-27
  • 打赏
  • 举报
回复
如果要连接远程数据库,通过remoting 或web services获取数据,实现数据传输。再与本地数据实现比较。
本地就可使用select mac from TableA where mac in (select mac form TableB where wo_no='XXX')
benbenkui 2009-04-27
  • 打赏
  • 举报
回复
没有这样搞过,楼主可以将select mac form TableB(苏州数据库) where wo_no='XXX'先查出来作为一个结果集,
然后再查
llsen 2009-04-27
  • 打赏
  • 举报
回复
llsen 2009-04-27
  • 打赏
  • 举报
回复
用这个连接连接两个数据库
给另一个数据库加一个别名server2

用这个存储过程
sp_addlinkedserver

select a.mac
from db1.dbo.tableA as a
inner join server2.db2.dbo.tableB as b
on a.mac = b.mac
具体内容请参考我的BLOG:http://blog.csdn.net/smallwhiteyt/archive/2009/11/08/4784771.aspx 如果你耐心仔细看完本文,相信以后再遇到导出EXCLE操作的时候你会很顺手觉得SO EASY,主要给新手朋友们看的,老鸟可以直接飘过了,花了一晚上的时间写的很辛苦,如果觉得对你有帮助烦请留言支持一下,我会写更多基础的原创内容来回报大家。 C#导出数据到EXCEL表格是个老生常谈的问题了,写这篇文章主要是给和我一样的新手朋友提供两种导出EXCEL的方法并探讨一下导出的效率问题,本文的代码直接就可用,其部分代码参考其他的代码并做了修改,抛砖引玉,希望大家一起探讨,如有不对的地方还请大家多多包涵并指出来,我也是个新手,出错也是难免的。 首先先总结下自己知道的导出EXCEL表格的方法,大致有以下几种,有疏漏的请大家补充。 1.数据逐条逐条的写入EXCEL 2.通过OLEDB把EXCEL做为数据源来写 3.通过RANGE范围写入多行多列内存数据到EXCEL 4.利用系统剪贴板写入EXCEL 好了,我想这些方法已经足够完成我们要实现的功能了,方法不在多,在精,不是么?以上4方法都可以实现导出EXCEL,方法1为最基础的方法,意思就是效率可能不是太高,当遇到数据量过大时所要付出的时间也是巨大的,后面3种方法都是第一种的衍生,在第一种方法效率低下的基础上改进的,这里主要就是一个效率问题了,当然如果你数据量都很小,我想4种方法就代码量和复杂程度来说第1种基本方法就可以了,或当你的硬件非常牛逼了,那再差的方法也可以高效的完成也没有探讨的实际意义了,呵呵说远了,本文主要是在不考虑硬件或同等硬件条件下单从软件角度出发探讨较好的解决方案。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧