Asp.net MVC后台 XML、DataTable、DataSet之间的数据转换

简介: 最近在做项目,这几天遇到的问题要用到几个数据转换,特此记录一下。 1.DataTable转换为XML的三种方式 public static string DataTableToXml(this DataTable dt) { ...
最近在做项目,这几天遇到的问题要用到几个数据转换,特此记录一下。

1.DataTable转换为XML的三种方式

        public static string DataTableToXml(this DataTable dt)
        {
            ////第一种  返回的XML字符串比较干净,DataTable行中数据为空的没有写入到XML字符串中
            System.IO.TextWriter tw = new System.IO.StringWriter();
            dt.WriteXml(tw);
            return tw.ToString();
            
            ////第二种  同第一种
            MemoryStream ms = null;
            XmlTextWriter XmlWt = null;
            ms = new MemoryStream();
            ////根据ms实例化XmlWt
            XmlWt = new XmlTextWriter(ms, Encoding.Unicode);
            ////获取ds中的数据
         dt.WriteXml(XmlWt);
            int count = (int)ms.Length;
            byte[] temp = new byte[count];
            ms.Seek(0, SeekOrigin.Begin);
            ms.Read(temp, 0, count);
            ////返回Unicode编码的文本
        UnicodeEncoding ucode = new UnicodeEncoding();
            string returnValue = ucode.GetString(temp).Trim();
            return returnValue;
            

            ///第三种   返回的XML字符串比较复杂,包括了DataTable中各个Column的定义,以及字段类型,当然还包括DataTable行值,以及其他属性
            StringBuilder sb = new StringBuilder();
            XmlWriter writer = XmlWriter.Create(sb);
            XmlSerializer serializer = new XmlSerializer(typeof(DataTable));
            serializer.Serialize(writer, dt);
            writer.Close();
            return sb.ToString();


        }

2.XML字符串转换为DataTable

        public static DataSet XMLToDataTable(this string StrData)
        {
            if (!string.IsNullOrEmpty(StrData))
            {
                XmlDocument xmlDoc = new XmlDocument();
                DataSet ds = new DataSet();
                try
                {
                    xmlDoc.LoadXml(StrData);
                    ds.ReadXml(GetStream(xmlDoc.OuterXml));
                    return ds;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            else
            {
                return null;
            }
        }

  其中用到GetStream方法如下

        public static StreamReader GetStream(this string xmlStr)
        {
            byte[] tempByte = Encoding.UTF8.GetBytes(xmlStr);
            MemoryStream stream = new MemoryStream(tempByte);
            //stream.Position = 0;
            StreamReader streamReader = new StreamReader(stream);
            return streamReader;
        }

  上面的方法只是将XMl字符串读入到DataSet中,然后再冲DataSet中查找先前定义过的DataTable即可。

DataTable转换为XML字符串调用即为 

DataTable dt= new DataTable("Test");
string  XmlData=dt.DataTableToXml();

  XML字符串转换为DataTable

string XmlData="此处为XML字符串";
DataTable dt=XmlData.XMLToDataTable().Tables["Test"];

 此两个方法暂时都用了自定义扩展方法。

以上。 

目录
相关文章
|
2月前
|
XML 前端开发 数据格式
请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
【2月更文挑战第22天】【2月更文挑战第67篇】请描述如何使用`BeautifulSoup`或其他类似的库来解析 HTML 或 XML 数据。
|
3天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
10 1
|
3月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
31 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
47 0
|
17天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
22 0
|
2月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1
|
2月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
17 1
|
2月前
ssm(Spring+Spring mvc+mybatis)——web.xml
ssm(Spring+Spring mvc+mybatis)——web.xml
13 0
|
2月前
|
Java Spring
ssm(Spring+Spring mvc+mybatis)Spring配置文件——applicationContext.xml
ssm(Spring+Spring mvc+mybatis)Spring配置文件——applicationContext.xml
11 0
|
2月前
|
网络安全
ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
ssh(Spring+Spring mvc+hibernate)——applicationContext.xml
8 0