具体说明如下:C/S机制,在SERVER端连接DB后取得DATASET,序列/反序列后传到CLIENT,经过变动后再传回SERVER端来UPDATE.但现在问题是即使对DATA不做任何变动,表内数据的rowstate也会在传到client后从unchanged变成added.这样就无法正确的进行update的工作.请问各位大大有什么办法在经过网络传递后还是保持dataset的rowstate吗

解决方案 »

  1.   

    ds.WriteXml("文件名", XmlWriteMode.DiffGram);ds.ReadXml("文件名", XmlReadMode.DiffGram);
      

  2.   

    多谢楼上.但是用Diffgram需要先让接收DS CLONE 发送DS,这个在C/S 2端应该如何实现?
      

  3.   

    解决了……先string schema = dataset.GetXmlSchema();获取数据集的架构字符串,然后一起传送;
    接受端先用构架来构造接收数据集,然后再接受DiffGram就可以了DataSet xmlDS = new DataSet();
    xmlDS.ReadXmlSchema(XmlReader);
    xmlDS.ReadXml(reader, XmlReadMode.DiffGram);
    多谢mapserver(杨东)大大,结贴给分了
      

  4.   

    您好!
    我是新手我请教各位,一个我的棘手的问题,切盼。
    我装载 多个表到,这些表中都有datetime 字段,当我DATASET 二进制序列化后,再反序列化,接下来我就这样操作:
    System.data.datatablereader myread=new System.data.datatablereader(dataset.tables[0]);
    当我用myread["eaxamtime"].ToString()的时候,得到的时间结果是1900-01-01 00:00:08,
    不知道为什么。
    在DATASET序列化的时候,对时间的需要做另外什么操作吗?先谢了。