做了个小的DataGrid通过DataSet保存为xml_测试,DataGrid通过DataSet保存为xml_测试,通过dataSet.writeXML()和dataSet.readXML()方法完成了写入和自动读取,在一些大型项目中,xml作为一些不经常修改的配置文件的作用就显得很重要!也可以试验DataSet从数据库获取ROW,请见我的上一篇文章~

本项目为了结构逻辑更加清晰,使用了分层结构,包括一个class文件和form文件~

类ItemList代码<主要是一些ITEM属性和dataSet的writexml方法>:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;//使用dataset,对于form则自动引用此命名空间,类文件需手动添加 namespace WinDataSet_xml
{
public class ItemList
//class若没有publicl修饰符,则会出现错误
//1 Inconsistent accessibility: parameter type 'WinDataSet_xml.ItemList' is less accessible than
//method 'WinDataSet_xml.ItemManager.Show(WinDataSet_xml.ItemList)' E:\winform_shixun\WinDataSet_xml\WinDataSet_xml\ItemManager.cs 22 21 WinDataSet_xml {
private Array m_ItemId;
private Array m_ItemName;
private Array m_ItemInfo; private string m_ItemListFileName = "ItemList.xml";
private string m_XMLPath = AppDomain.CurrentDomain.BaseDirectory + "ItemList.xml"; private DataSet m_Ds = new DataSet(); #region get,set Property
public Array ItemID { get { return m_ItemId;} set {this.m_ItemId=value;} }
public Array ItemName{get {return m_ItemName;} set {this.m_ItemName=value;} }
public Array ItemInfo { get { return m_ItemInfo; } set { this.m_ItemInfo = value; } }
public DataSet ItemDS { get { return m_Ds; } set { this.m_Ds = value; } } public string ItemListFileName
{
get { return m_ItemListFileName; }
set
{
this.m_ItemListFileName = value;
if (value != null && !string.IsNullOrEmpty(value))
{
m_XMLPath = AppDomain.CurrentDomain.BaseDirectory + "\\" + this.m_ItemListFileName;
} }
} public DataSet ItemDataSet
{
get
{
DataSet ds = new DataSet();
ds.Tables.Add(new DataTable("Item属性表"));
ds.Tables[].Columns.Add(new DataColumn("Item序列号"));
ds.Tables[].Columns.Add(new DataColumn("Item姓名"));
ds.Tables[].Columns.Add(new DataColumn("Item信息"));
return ds;//get属性就是要return,否则出错!
}
}
#endregion public void SaveXML()
{
try
{
this.m_Ds.WriteXml(this.m_XMLPath);
}
catch(Exception ex)
{
throw(ex);
}
} public void LoadingXML()
{
try
{
this.m_Ds.ReadXml(this.m_XMLPath);
}
catch (Exception ex)
{
throw (ex);
}
} }
}

新建窗体ItemManager.cs代码<此窗体中含有dataGride控件及button控件>:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace WinDataSet_xml
{
public partial class ItemManager : Form
{
public ItemManager()
{
InitializeComponent();
} //同项目下的类可以互相引用,不同项目下需要using
private ItemList _Items; public void Show(ItemList items)
{
this._Items = items;
ItemList11.DataSource = _Items.ItemDS.Tables[];//ItemList1是网格Name,设置网格所显示的数据的数据源
//ItemList11.DataSource = _Items.ItemDataSet.Tables[0].DefaultView;
this.Show(); } private void button1_Click(object sender, EventArgs e)
{
for (int i = ; i < this.ItemList11.RowCount;i++ )
{
DataRow dr = null;
dr = this._Items.ItemDS.Tables[].NewRow();
dr[]=ItemList11.Rows[i].Cells[].Value;
dr[]=ItemList11.Rows[i].Cells[].Value;
dr[]=ItemList11.Rows[i].Cells[].Value; //this._Items.ItemDS.Tables[0].Rows.Add(dr);这个是一样的,不必写!写了反而不对
//this.ItemList11.DataSource = this._Items.ItemDS.Tables[0];
}
this._Items.SaveXML();
} private void button2_Click(object sender, EventArgs e)
{
this._Items.LoadingXML();
}
}
}

新建窗体Form_Base.cs<MdiParent>代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace WinDataSet_xml
{
public partial class Form_Base : Form
{
public Form_Base()
{
InitializeComponent();
} private void Button_Management_Click(object sender, EventArgs e)
{
ItemManager _ItemManager = new ItemManager();
_ItemManager.MdiParent = this;
_ItemManager.Dock = DockStyle.Fill; ItemList _ItemListDG = new ItemList();
DataSet _ds = _ItemListDG.ItemDataSet;
_ItemListDG.ItemDS = _ds;
// _ItemListDG.ItemDataSet = _ds; 只有get方法不能赋值 _ItemManager.Show(_ItemListDG);
}
}
}

测试效果图:

 

DataGrid通过DataSet保存为xml文件,并导入的更多相关文章

  1. 代码注释模板(把内容保存为xml文件,导入eclipse中即可)

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><templa ...

  2. 提取数据表保存为XML文件

    //连接数据库 SqlConnection con = new SqlConnection("server=****;database=****;uid=sa;pwd=********&qu ...

  3. mybatis mapper xml文件的导入方式和查询方式

    mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis  mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...

  4. List<T>保存为XML文件

    今天我们学习怎样把List<T>写成一个XML文件保存起来.因为我们在做动态网站开发时,需要对一些不太常变化的数据产生为XML文件,让程序直接去读取,而不是每次是SQL数据库取. 为了解决 ...

  5. Android吧数据保存成xml文件

    public class MainActivity extends Activity { private List<Person> persons; @Override protected ...

  6. python文件目录遍历保存成xml文件代码

    Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...

  7. .net中xml文件的导入使用(包括创建xml和导入xml)

    上次有说到.net 创建xml文件的方法(一种固定方式,一种动态方法),这次记录一下怎样导入xml文件 1.导入xml文件的方法 1)xml文件格式

  8. 启动项目时,mapper.xml文件没有导入

    原因分析:绑定的statement没有发现,原因是只有mapper接口的java文件,没有xml文件 解决方法:需要在pom文件中进行配置 <!-- 如果不添加此节点mybatis的mapper ...

  9. zabbix高级玩法之通过xml文件一次性导入

    author:headsen  chen date: 2018-11-10  10:08:38 背景:zabbix的硬件监控架构已经部署完成,接下来就是创建主机这一步,2400台主机如果采用一台台的创 ...

随机推荐

  1. SQLServer 服务器架构迁移

    原文:SQLServer 服务器架构迁移 最近服务器架构迁移,将原来的服务器架构迁移到新的服务器,新的服务器在硬件方面比之前更好!原来服务器使用双向同步,并且为水平划分到多个数据库服务器.迁移过程中, ...

  2. Oracle报错:不是单组分组函数

    报错:不是单组分组函数 实例:select sum(HWJZ) ,rq from  JcChargeInfo 原因: 1.如果程序中使用了分组函数,则有两种情况可以使用: 程序中存在group by, ...

  3. 因内存释放而引发的中断问题,dll中new的内存释放问题

    调试程序,每次关闭一个界面就会弹出中断错误. 为了确认这个问题,我将出现问题那一段代码中的函数一个个屏蔽,以此来确认到底哪个函数出现问题,缩小范围: 最后我发现,只要屏蔽掉checkIfFingerI ...

  4. ADB命令笔记本

    ADB即Android Debug Bridge,作为电脑操作手机的工具,被Android开发者和众多国内xxx安全管家所使用.在此记录一些常见的命令,随时更新,方便以后查找.(万一以后我也要开发一款 ...

  5. Advanced Installer 11.9基于IIS打包札记(For MySQL)

    原文:Advanced Installer 11.9基于IIS打包札记(For MySQL) Mysql免安装前期部署 下载绿色命令行版本的mysql,将其放入到发布的程序发布包内,执行Update批 ...

  6. qt技巧--使用html导出表格替代excel

            曾经为qt不能直接导出excel而困扰,后来经过深入了解,得知qt支持xml国际语言,html是xml的一种.html是做网页的,相信大家比较熟悉.所以使用html的<table ...

  7. 使用Chart控件进行实时监控

    Chart作为微软提供绘制图表的控件,在刚开始使用时非常的迷茫,因为功能强大,涉及到的知识多, 一开始难以接收过来,但后天经过查找资料,耐心学习,终于还是有了一定的收获. Chart相当于一个大的图纸 ...

  8. Qt 下快速读写Excel指南(尘中远)

    Qt Windows 下快速读写Excel指南 很多人搜如何读写excel都会看到用QAxObject来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是QAxObjec ...

  9. Tomcat cache 缓存 编译

    http://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html development - Is Jasper used in developmen ...

  10. 15 款 jQuery 社交分享插件

    过去几年中社交媒体越来越流行了,能够分享音乐.视频.图像甚至是其他的 docs 文档到互联网上去,这样子还能够提高页面的点击量.通常,一些社交媒体插件都能允许你的用户分享你网站上的内容到其他的社交平台 ...