如何用ReadXml和WriteXml将xml的数据读取到DataSet中?请高手帮帮忙~~~

2020-05-17 科技 76阅读
使用DataSet的ReadXml方法填充DataSet,从文件、流或XmlReader中进行读取。根据所指定的XmlReadMode以及关系架构是否已存在,ReadXml方法读取XML流或文档的内容并将数据加载到DataSet中:
DataSet dataSet = new DataSet();
dataSet.ReadXml("input.xml", XmlReadMode.ReadSchema);
如果DataSet已经包含数据,会向已存在于DataSet中的数据添加XML中的新数据。ReadXml不会从XML向DataSet中并入任何具有匹配主键的行信息。若要使用XML中的新信息重写现有行信息,使用ReadXml创建一个新的DataSet,然后使用Merge将新DataSet并入现有DataSet。注意,如果使用XmlReadMode为DiffGram的ReadXML来加载DiffGram,将合并具有相同唯一标识符的行。
使用DataReader中的XML列值,SQL Server2008支持新的xml数据类型,开发人员可以使用SqlCommand类的标准行为检索类型的结果集。xml列可以像任意列一样进行检索,例如检索到SqlDataReader中,但要以XML的形式使用列内容,必须使用XmlReader。
若要将DataSet写入文件、流或XmlWriter,使用WriteXml方法。向WriteXml传递的第一个参数为XML输出的目标。例如,传递包含文件名的字符串、System.IO.TextWriter对象等。可以传递XmlWriteMode的另一个可选参数来指定如何编写XML输出。
下面是两行将DataSet的XML表示形式写入文件的代码。第一行代码将生成的XML文件名当作字符串传递到WriteXml。第二行代码传递一个StreamWriter对象。
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema);
System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema);
xmlSW.Close();
下表描述XmlReadMode参数的选项。这里无法插入表,具体是
Auto:这是默认设置。检查XML并选择最适合的选项。
ReadSchema: 读取内联架构并加载数据和架构。
IgnoreSchema: 忽略任何内联架构并将数据加载到现有的DataSet架构中。
InferSchema: 忽略任何内联架构并按照XML数据的结构推断架构,然后加载数据。
DiffGram: 读取DiffGram并将数据添加到当前架构中。DiffGram会将新行和唯一标识符值匹配的现有行合并。
Fragment: 持续读取多个XML片断,直至到达流的末尾。与DataSet架构匹配的片断会追加到相应的表。与DataSet架构不匹配的片断将被丢弃。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com