ADO.NET 通过非连接的 DataSet 和 DataTable 支持 XML。这两个对象都能通过内建的智能把行的集合转换成 XML 文档。
DataSet 的所有 XML 方法:
| GetXml() | 得到以 XML 格式表现的 DataSet 中的数据并将其作为单个字符串 |
| WriteXml() | 把 DataSet 的内容写入文件或 TextWriter、XmlWriter、Stream 对象 |
| ReadXml() | 从文件或 TextWriter、XmlWriter、Stream 对象读取 XML ,并填充 DataSet |
| GetXmlSchema() | 以字符串形式得到 XML 架构,不返回数据 |
| WriteXmlSchema() | 只把描述 DataSet 结构的 XML 架构写入文件或 TextWriter、XmlWriter、Stream 对象 |
| ReadXmlSchema() | 从文件或 TextWriter、XmlWriter、Stream 对象读取 XML 架构,并配置 DataSet 的结构 |
| InferXmlSchema() | 从文件或 TextWriter、XmlWriter、Stream 对象读取 DataSet 内容的 XML 文档,并用它推断 DataSet 应有的结构。可以替换ReadXmlSchema(),但并不保证保存所有的数据类型的信息 |
把 DataSet 转换为 XML
创建 DataSet 后,就可以用它生成一个描述 DataSet 结构的 XML 架构文件以及一个包含每行内容的 XML 文件。下面的代码可以把 DataSet 保存到一个 XML 文件里:
].ConnectionString;
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand("select EmployeeID,TitleOfCourtesy,FirstName,LastName from employees", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("Employees");
sda.Fill(dt);
string xmlFile = Server.MapPath("Employees.xml");
dt.WriteXml(xmlFile, XmlWriteMode.WriteSchema);