DataTable读写到XML文件的正确方法(以及对缺少根元素问题的处理)

有时候需要将DataTable数据保存到xml文件中,在不使用数据库的小程序中、在需要通过网络接口传参数时,经常会有这种需要,操作不好,会出现“缺少根元素”。现在将经过反复测试没有错误的读写两个方法写出来,大家可以修改使用。

写datatable到XML

public static bool dataTable2EncXml(DataTable dt, string strFilePath)

{

try

{

string strMid = "";

MemoryStream ms = new MemoryStream();

StreamWriter sw = new StreamWriter(ms,System.Text.Encoding.UTF8);

dt.WriteXml(sw,XmlWriteMode.WriteSchema); //必须写入架构,即没有行数据时,也写入列等架构内容,否则,没有行数据时,列数据也会丢失

ms.Position = 0;//复位读取位置

StreamReader sr = new StreamReader(ms, System.Text.Encoding.UTF8);

strMid = sr.ReadToEnd();

sr.Close();

sw.Close();

ms.Close();

strMid = Encrypting(strMid);//加密

if( WriteToFile(strFilePath, strMid) == -1) return false; //一个简单的写文本文件 的小函数

else   return true;

}

catch

{

return false;

}

}

读XML到datatable,不会提示缺少根元素

/// <summary>

/// 将Xml加密数据读入DataTable

/// </summary>

/// <param name="filePath">加密XML文件路径</param>

public static DataTable Xml2DecDataTable(string filePath)

{

string strMid = ReadFromFile(filePath); //一个简单的读文本文件函数

strMid = Decrypting(strMid); //解密

//先将XML字串读到xmlDocument中

XmlDocument xd = new XmlDocument();

xd.LoadXml(strMid);

//再存入内存流

MemoryStream ms = new MemoryStream();

xd.Save(ms);

ms.Seek(0, SeekOrigin.Begin);

//datatable就可以正确读取了,不会显示“缺少根元素”

DataTable dt = new DataTable();

try

{

dt.ReadXml(ms);

}

catch (Exception ex) { }

ms.Dispose();

return dt;

}

时间: 2024-10-13 17:27:49

DataTable读写到XML文件的正确方法(以及对缺少根元素问题的处理)的相关文章

c#操作XML文件的通用方法

c#操作XML文件的通用方法 本文导读:我们在编写C#程序时,经常会通过C#访问XML文件,实现对XML文档的读写操作.下面为大家列出了通用的调用方法,大家可以将这些方法放在共用类里,其它的程序共享调用就可以了. 下面通过一个类将我们平时用c#操作XML文件的通用方法详细的介绍一下,关于asp.net C#操作xml文档实现代码,大家可以参考参考. c# 代码 1 sing System; 2 using System.Data; 3 using System.Configuration; 4

DataSet - DataTable - DataRow 读取 xml 文件 + 搜索

DataSet ds = XmlHelper.GetDataSetByXml(AppDomain.CurrentDomain.BaseDirectory + "/Config/ConfigName.xml");//取得xml文件 DataTable dt = ds.Tables["table_Name"];//取得xml文件的节点内容 DataRow[] dr = dr = ds.Tables["table_Name"].Select("

Android之获取string.xml文件里面的方法

获取string.xml文件里面的方法 在此做个笔记: 1.在AndroidManifest.xml与layout等xml文件里: android:text="@string/resource_name" 2.在activity里: 方法一:this.getString(R.string.resource_name); 方法二:getResources().getString(R.string.resource_name); 3.在其他java文件(必须有Context或pplicat

C# 读写XML文件最简单方法

C#史上最简单读写xml文件方式,创建控制台应用程序赋值代码,就可以运行,需要改动,请自行调整 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace ConsoleApp1 { class Program { public cons

Eclipse关闭XML文件验证的方法

今天不知怎么了STS(eclipse)验证xml文件非常缓慢,如下: 解决方法:(转自http://blog.csdn.net/aigochina/article/details/8196486) 关闭XML验证 1.菜单[Windows] -[Preperences]-[Validation]2.在右边找到“XML Validator”,把取消[Bulid]复选框的选中状态,保持[Manual] 的选中状态,因为我们最后还需要确保XML的正确性,这个可以通过选择XML文件,在右键菜单中选择[V

XML文件解析---SAX方法

XML文件如下: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <books> <book name="book1" num="1" >  出版于1991年 </book> <book name="book2" num="2" >  出版于199

MyEclipse中spring添加xml文件自动提示方法

在看ssh三大框架集成中,在添加springapplicationContext.xml时,会弹出一个对话框,开发者可以从框中选择自己开发所需要的xml文件,百度了很多,总是看不明白,也不知道怎么弄,照着搜到的文章弄,又弄不出什么结果,这些文章都写得太高深了,对于刚搞开发的来说,如果有详细步骤和详细说明就好了:没办法自己一点一点的试总算是弄出来了,这里写给大家,希望对用myeclipse学习三大框架的人有点帮助; 首先进入:window -> Preference... -> MyEclips

C# XML 如何检验自己手写的xml文件是正确的

1 打开你的浏览器2 将xml文件拖拽到浏览器中 3 效果 1 代码 2效果 1 错误的代码 2 错误的效果

在.net中读写config文件的各种方法(自定义config节点)

http://www.cnblogs.com/fish-li/archive/2011/12/18/2292037.html 阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collection config文件 - 读与写 读写 .net framework中已经定义的节点 xml配置文件 xml配置文件 - CDATA xml文件读写注意事项 配置参数的