诸位大虾,我希望能够将一个地点的数据库内的数据(例如一个mdb中的一张表)通过网络传到其他机器的数据库中(例如另外一个mdb)。请问中间的过程大致是怎样的呢?我目前查资料后,大致理了一下头绪,但还不是很肯定需要如下流程。
1.数据库的数据到内存:  通过connection command DataAdapter 将需要的数据放到DataSet中。
2.内存到待传输:由DataSet变成XML的string,然后由string变成bytes array
3.传输: 由网络Socket传输bytes array
4.到内存:bytes array变成XML
5.到新的DataSet: GetXML 将XML string读入DataSet
6.到数据库:DataSet经DataAdapter进入新的数据库但有很多问题:
1.如果中间用XML string传得话,对于非常大量的数据岂不是会使得string不堪重负。另外XML的额外负担也太多了些。有没有办法直接串行化到一个什么Stream中?然后直接发送?2.如果中间必须用XML传,那么如何才能使用传输中的Soap?(不指望详细介绍,但希望获得相关类和方法的名称)3.不知道怎么从DataSet到数据库。
非常感谢好心的诸位。

解决方案 »

  1.   

    不可以直接替换mdb文件吗?
    只是一种思路
    select 然后insert好像有点麻烦
      

  2.   

    那个那个,我说的是广义上的传输,而不是让两个地方传mdb。即,如一方是Access,另一方是SQL Server。或者,我在一方的数据要做一些连接啦,投影拉之类的操作,把结果传过去,存到另外一个数据库中。
      

  3.   

    Web Services实现起来怎么样?
      

  4.   

    嗯,总体说来还是用的XML呀。不过对于大数据量的数据库使用XML总让我觉得效率会很低,因为他会多传60%以上的Byte真的没有其他方法了么
      

  5.   

    还有办法,不过比较麻烦。就是自己写代码把数据库的记录,转成string,然后转成byte发送。这样,转换效率,网络流量都可以降低50%以上。只是,写这么一个类,花的时间很多
      

  6.   

    我觉得可以,传输效率在我这里比较重要。
    能具体说说么将DataSet中的某个DataTable的数据转换成string的做法。(是不是要实现一个叫ISerialize的接口?)另外string的长度没有什么限制吧。
      

  7.   

    给你一个思路,供参考。反正俺是这么做的。第一: 服务器端,用一个专门的类来把表中的数据,转成string(用stringbuilder的效率会比较高),然后传到客户端。 当然,只能转表中的字符数据。第二: 客户端把数据解成一个类似dataReader的类,然后使用。做这个代码,俺可花了20天的业余时间:)