如何通过XML同步两个数据的主从表,请大家帮忙。

解决方案 »

  1.   

    两个数据库 有结构相同的主从表 需要同步,我的想法是这样,服务端用WEBSERVICE 返回XML ,客户端取得XML后更新客户端的数据库。有兄弟能贴出例子吗
      

  2.   

    这个问题其实很简单 
    在WEBSERVICE 将服务器 数据提取到DataSet中然后直接输出XML
    客户端 接收 这个XML文档 提取数据插入本地库!
    -------------------------------------------
    其实完全不用XML文件啊!服务器可以直接WEBSERVICE返回一个DataSet
    客户端接收就苦可以了,不过说回了 DataSet是基于XML的
      

  3.   

    现在我遇到的问题是主从表怎样输出XML。能贴出例子吗?
      

  4.   

    和主从表有什么关系啊!
    就直接提到本地 输出就行了啊!
    这个还需要例子么?1)连接数据库
    2)读取数据到本地DataSet中
    3)将数据输出为XML 直接用 DataSet.WriteXml()就可以
      

  5.   

    string temp_main = "select top 2 * from Trans_main  ";
                string temp_sub = "select * from Trans_main_sub where Trans_main_sub.id in (";
                temp_sub += " select top 2 id from Trans_main )"; 
     DataTable rs = baseOpDataBase.Query(temp_main);
                    DataTable rss = baseOpDataBase.Query(temp_sub);
                    DataSet ds =new DataSet();ds.Tables.Add(rs.Copy());                ds.Tables.Add(rss.Copy());                ds.Relations.Add("myrelation",
                        ds.Tables["Trans_main"].Columns["id"],
                        ds.Tables["Trans_main_sub"].Columns["id"]); 
     
     
    string dbstring = "";
    string data = "";
    string structmsg="";
     
        ds = ds.DefaultViewManager.DataSet;
        dbstring = ds.GetXmlSchema();
    ds.GetXml();
    data=ds.GetXml();
    structmsg = ds.GetXmlSchema();这是我写的,但输出的XML并没有显示成主从关系,反而显示为
     <Trans>
     
      <Trans_main>
      <ID>2</ID> 
      <TransNo>031014001</TransNo> 
      <p_transNo /> 
      <TransName>普通交易单</TransName> 
      ----
      
      </Trans_main>
    <Trans_main>
    ---
    </Trans_main>
     
     <Trans_main_sub>
      <ID>2</ID> 
      <subid>2</subid> 
      <deal_mode>卖</deal_mode> 
      ----
      <pcamount>0</pcamount> 
      </Trans_main_sub>
    ---
      </Trans>
     
      

  6.   

    你的意思是说除了把数据输出到XML还要 把 两个表的关系输出到XML文件中?
      

  7.   

    是啊。因为我还在用来更新数据库。我用这样来读取XMLSystem.IO.TextReader tr = null;System.IO.StringReader sr = new System.IO.StringReader(data);
    System.Data.DataSet nd = new System.Data.DataSet();
    nd.ReadXml(sr);
    sr = new System.IO.StringReader(structmsg);
    nd.ReadXmlSchema(sr);
    但不能通过请问怎样解决呢?
      

  8.   

    你主从表的主键设置问题,使用Guid或者自己产生的就不会出现这个问题了;
    你这样的使用DataSet存储两个表,并建立两个表的关系来解决;自己看看这方面的知识吧