使用WriteXml,ReadXml序列化反序列化DataTable(转载)

标签:序列化和反序列化

本文介绍使用使用WriteXml,ReadXml对DataTable序列化反序列化,同时处理"DataTable 不支持来自 XML 的架构推断。"错误.

由于DataTable本身就实现了ISerializable, IXmlSerializable接口.所以本身就支持序列化反序列化.

DataTable是个很好的数据类型

1.数据库中的表完全对应.

2.Repleater,DataGrid等控件都支持对它的绑定.

3.在代码中循环遍历特别方便.

但为了网络传输,或者离线保存,就需要序列化反序列化为xml.WriteXml,ReadXml就是实现次目的的. 

一.使用WriteXml序列化DataTable: 

准备数据: 

  1. create table sitemaps   
  2. (  
  3.     url varchar(255),  
  4.     title varchar(255)  
  5. )  
  6.   
  7. insert sitemaps   
  8. select 'http://www.it118.org', 'it智库网'  
  9. union all  
  10. select 'http://bbs.it118.org', 'it智库网论坛'  

C#处理代码:

  1. SqlConnection connection = new SqlConnection("Server=localhost;Database=testdb;uid=sa;pwd=sa");  
  2.   
  3. connection.Open();  
  4.   
  5. SqlCommand selectCommand = new SqlCommand(string.Format("SELECT * from sitemaps"), connection);  
  6.   
  7. DataTable dataTable = new DataTable("sitemaps");  //注意table一定需要有tablename
  8. new SqlDataAdapter(selectCommand).Fill(dataTable);  
  9.   
  10. connection.Close();  
  11.   
  12. dataTable.WriteXml("d:\\sitemaps.xml");  

其中sitemaps.xml:  

  1. <?xml version="1.0" standalone="yes"?>  
  2. <DocumentElement>  
  3.   <sitemaps>  
  4.     <url>http://www.it118.org</url>  
  5.     <title>it智库网</title>  
  6.   </sitemaps>  
  7.   <sitemaps>  
  8.     <url>http://bbs.it118.org</url>  
  9.     <title>it智库网论坛</title>  
  10.   </sitemaps>  
  11. </DocumentElement>  

二.使用ReadXml序列化DataTable:

如果代码如下: 

  1. DataTable dt = new DataTable();  
  2. dt.ReadXml("d:\\sitemaps.xml");  

就会提示:DataTable 不支持来自 XML 的架构推断。

正确代码如下: 

  1. DataTable dt = new DataTable("sitemaps");  
  2. dt.Columns.Add("url");  
  3. dt.Columns.Add("title");  
  4. dt.ReadXml("d:\\sitemaps.xml");  

三.应用

我曾经有特殊需要.在本地使用WriteXml生成xml,传输到别的地方使用ReadXml读取.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#中的DataSetDataTable是非常常用的数据存储和处理工具,下面是一些应用实例: 1. 数据库查询结果存储 在C#中,我们可以使用DataSetDataTable来存储数据库查询结果。例如,我们可以使用DataAdapter类从数据库中检索数据,并将结果存储在DataTable中。然后,我们可以使用DataTable的方法和属性来处理和操作这些数据。 2. 数据导入和导出 DataSetDataTable也可以用于数据导入和导出。例如,我们可以使用DataTableWriteXml方法将数据保存为XML文件,然后使用ReadXml方法将数据加载回DataTable中。同样,我们也可以使用DataSetWriteXmlReadXml方法来导入和导出数据。 3. 数据筛选和排序 使用DataTable的Select方法可以筛选出符合条件的数据行,而使用DataTable的Sort方法可以对数据进行排序。这些方法可以帮助我们快速地处理和分析数据。 4. 数据绑定 DataSetDataTable也可以用于数据绑定。例如,我们可以使用DataGrid控件将DataTable中的数据绑定到一个表格中,然后可以对表格进行排序、筛选和编辑操作。 总之,DataSetDataTableC#中非常有用的数据存储和处理工具,可以帮助我们快速地处理和分析数据。 ### 回答2: 很抱歉,我需要更多的上下文信息才能回答您提出的问题。请提供更多的信息。 ### 回答3: 抱歉,您的问题中似乎缺少了一部分内容,无法理解您想要询问的具体问题。请您提供更详细的问题或背景信息,我将尽力为您提供准确的答案和帮助。谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值