DataGrid通过DataSet保存为xml文件,并导入
做了个小的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文件,并导入的更多相关文章
- 代码注释模板(把内容保存为xml文件,导入eclipse中即可)
<?xml version="1.0" encoding="UTF-8" standalone="no"?><templa ...
- 提取数据表保存为XML文件
//连接数据库 SqlConnection con = new SqlConnection("server=****;database=****;uid=sa;pwd=********&qu ...
- mybatis mapper xml文件的导入方式和查询方式
mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...
- List<T>保存为XML文件
今天我们学习怎样把List<T>写成一个XML文件保存起来.因为我们在做动态网站开发时,需要对一些不太常变化的数据产生为XML文件,让程序直接去读取,而不是每次是SQL数据库取. 为了解决 ...
- Android吧数据保存成xml文件
public class MainActivity extends Activity { private List<Person> persons; @Override protected ...
- python文件目录遍历保存成xml文件代码
Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...
- .net中xml文件的导入使用(包括创建xml和导入xml)
上次有说到.net 创建xml文件的方法(一种固定方式,一种动态方法),这次记录一下怎样导入xml文件 1.导入xml文件的方法 1)xml文件格式
- 启动项目时,mapper.xml文件没有导入
原因分析:绑定的statement没有发现,原因是只有mapper接口的java文件,没有xml文件 解决方法:需要在pom文件中进行配置 <!-- 如果不添加此节点mybatis的mapper ...
- zabbix高级玩法之通过xml文件一次性导入
author:headsen chen date: 2018-11-10 10:08:38 背景:zabbix的硬件监控架构已经部署完成,接下来就是创建主机这一步,2400台主机如果采用一台台的创 ...
随机推荐
- scala 学习
继续学习: https://segmentfault.com/a/1190000003068853#articleHeader2 https://docs.scala-lang.org/tour/mi ...
- 写给非专业人士看的 *** 简介(同时也解释了GFW )
写给非专业人士看的 *** 简介 这个文章来源于一个朋友在***的过程中,搞不清楚 *** 的配置问题,在这里我想按照我对 *** 的理解简单梳理一下,以便一些非专业人士也能了解 long long ...
- TIFF图片简介
每个TIFF文件都是从指示字节顺序的两个字节开始的.“II”表示小字节在先.“MM”表示大字节在先字节顺序.后面的两个字节表示数字42.数字42是“为了其深刻的哲学意义"而选择的. 42的读 ...
- Portal for ArcGIS 资源承载数据类型
在Portal中数据主要分为两大类:Web内容与桌面内容.对于Web内容与桌面内容中的每个项目(item)又被具体分为maps,layers, styles, tools,applications,和 ...
- INS-13001—win10系统安装oracle11g时遇到INS-13001环境不满足最低要求
升级win10系统之后,需要重新安装Oracle,因为在安装Oralce11g时,使用64位的会出现各种不兼容问题,我每次安装都是使用32位的数据库. 在安装时点击setup.exe之后,出现了:[I ...
- 漫步Facebook开源C++库Folly之string类设计(散列、字符串、向量、内存分配、位处理等,小部分是对现有标准库和Boost库功能上的补充,大部分都是基于性能的需求而“重新制造轮子”)
就在近日,Facebook宣布开源了内部使用的C++底层库,总称folly,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能的需求. 这里是folly的github地址:https:// ...
- Qt5---ftp上传功能(可直接克隆某个小模块,查看QT下FTP的socket原理)
http://blog.csdn.net/freeape/article/details/52802163
- Java Socket基础[备忘]
1.服务端----Server.java import javax.swing.*; import java.io.*; import java.net.*; import java.awt.*; i ...
- 在windows下的QT编程中的char*,wchar_t*与QString之间的转换(利用reinterpret_cast和_stprintf函数,fromWCharArray从字符数组里读取数据)
http://blog.csdn.net/yangxiao_0203/article/details/7422660 转自http://hi.baidu.com/zj41342626/blog/ite ...
- PHP/JS中获取当前页面的完整URL
javascript实现: top.location.href 顶级窗口的地址this.location.href 当前窗口的地址 php实现 PHP实现 #测试网址: http://localhos ...