日期:2014-05-19  浏览次数:20844 次

请教两个关于DataSet写入XML的问题
请教两个关于DataSet写入XML的问题  
第一个问题

现在有一个DataSet,要写入XML文件然后传输给另一个程序使用。这个DataSet描写的是一个数据库,但是并不是所有数据库的信息和内容都要传输过去,有的数据表只传输构架,有的数据表传输全部数据,有的只传输给定的数据。

例如,DataSet含有表A,B,C三个表,A表的内容全部传输,B表只是传输构架,C表传输部分内容,C表有一个字段ProduceDate,传输ProduceDate= '2006-01-02 '的内容。

那么应该如何调用DataSet的WriteXML和WriteXMLSchema函数?

或者那位大虾给一个解决方案?如果您的方案是对每个数据表调用相应的DataTable.WriteXML方法,那希望您给一段具体的代码,怎样把这几个表输出的独立的XML文件写入到同一个XML文件中形成DataSet相对应的XML文件?

第二个问题

在用数据库信息生成DataSet的时候,表与表之间是有外键约束的,表自身也有约束,例如,非空,主键,有些列示其他几个列的表达式值(列3=列1+列2)等等,这些约束我在生成DataSet的时候已经完成了,现在担心的是如果按照问题一中给的解决方案生成了XML后,在传输给另一个应用程序后,它能不能被无损的还原出来?如果不能,有没有什么方法避免?



------解决方案--------------------
1、全部传输的,需要两个DataSet.WriteXml和DataSet.WriteSchema, 在装载的时候,先装载DataSet.ReadSchema再数据。
2、传Schema直接用DataSet.WriteSchema
3、传输部分,先对DataSet进行筛选,在用DataSet.WriteXml和DataSet.WriteSchema
------解决方案--------------------
问题一
建议把需要传输的数据复制到一个新的DataSet中进行传输。

问题二
通过DataSet.ReadSchema和DataSet.WriteSchema来管理架构。