DataSetExtension - C# DataSet对象持久化到本地文件
DataSetExtension - C# DataSet对象持久化到本地文件
DataSet扩展类, 序列化DataSet对象及数据到本地文件,包括Dataset结构元数据及完整的记录状态。 DataSetExtension.cs C# Code: using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSFrameworkV5.DemoLibrary { /// <summary> /// DataSet扩展类, 序列化DataSet对象数据到本地文件,包括元数据及完整的记录状态。 /// </summary> public static class DataSetExtension { /// <summary> /// 加载本地文件 /// </summary> /// <param name="dataSet">DataSet实例</param> /// <param name="file">本地文件</param> public static void FromFile(this DataSet dataSet, string file) { var str = File.ReadAllText(file); var splited = str.Split('|'); using (var msSchema = new MemoryStream(Convert.FromBase64String(splited[0]))) { using (var msData = new MemoryStream(Convert.FromBase64String(splited[1]))) { dataSet.ReadXmlSchema(msSchema);//加载元数据 dataSet.ReadXml(msData);//读取表数据 } } } /// <summary> /// Dataset序列化为本地文件 /// </summary> /// <param name="dataSet">DataSet实例</param> /// <param name="file">本地文件</param> /// <returns></returns> public static bool ToFile(this DataSet dataSet, string file) { using (MemoryStream msSchema = new MemoryStream()) { dataSet.WriteXmlSchema(msSchema); using (MemoryStream msData = new MemoryStream()) { dataSet.WriteXml(msData, XmlWriteMode.DiffGram); //将Dataset分隔为两段,表结构元数据|数据, 然后将字符串转换为Base64String var str = Convert.ToBase64String(msSchema.ToArray()) + "|" + Convert.ToBase64String(msData.ToArray()); //写入本地文件 File.WriteAllText(file, str); return true; } } } /// <summary> /// 将Base64String字符串转换为DataSet对象 /// </summary> /// <param name="dataSet">DataSet对象</param> /// <param name="base64str">Base64String字符串</param> public static void FromBase64String(this DataSet dataSet, string base64str) { var splited = base64str.Split('|'); using (var msSchema = new MemoryStream(Convert.FromBase64String(splited[0]))) { using (var msData = new MemoryStream(Convert.FromBase64String(splited[1]))) { dataSet.ReadXmlSchema(msSchema); dataSet.ReadXml(msData); } } } /// <summary> /// Dataset序列化为Base64String字符串 /// </summary> /// <param name="dataSet">Dataset对象</param> /// <returns></returns> public static string ToBase64String(this DataSet dataSet) { using (MemoryStream msSchema = new MemoryStream()) { dataSet.WriteXmlSchema(msSchema); using (MemoryStream msData = new MemoryStream()) { dataSet.WriteXml(msData, XmlWriteMode.DiffGram); return Convert.ToBase64String(msSchema.ToArray()) + "|" + Convert.ToBase64String(msData.ToArray()); } } } } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加作者微信
参考文档:
C#序列化/反序列化对象.将对象写入文件,从文件读取对象. C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 标签:C#.Net组件开发 - 设计时持久化对象数组 标签:C#.Net组件开发 - 自定义设计器持久化对象的属性 标签:C#.Net组件开发 - 自定义属性编辑器持久化对象的属性 文件或目录的长文件名与短文件名互转换类C#.Net C#.Net 持久化对象为XML文件 C#持久化对象为XML文件(MyXmlSerializer) C#获取文件的编码格式(UTF-8/UNICODE/ASCII) C#数据转换类ConvertEx,封装.Net的Convert对象 C#读取Excel文件提示:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” C# NavBarControl根据鼠标点击位置获取 NavBarGroup 对象 C# 动态对象转换为实体对象支持泛型(DynamicToEntity) C# 本地图片缓存器ImageFileCache (www.csframework.com) C# INI本地文件读写工具类IniFileTool.cs
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |