一个C#的XML数据库访问类
原文地址:http://hankjin.blog.163.com/blog/static/33731937200942915452244/
程序中不可避免的要用到配置文件或数据,对于数据量比较小的程序,部署数据库花费的时间就显得浪费了,因此用XML来存储不妨为一个很好的办法,而且结合C#的DataSet,我们可以很轻易的封装出一个代码简单而功能强大的数据访问类XMLConfig
config.xml
<root>
<table1>
<rowName1>hello</rowName1>
<rowName2>World</rowName2>
</table1>
<table1>
<rowName1>hank</rowName1>
<rowName2>Joke</rowName2><!--table1, row1:
ds.Tables["table1"].Rows[1]["rowName2"] -->
</table1>
<table2>
</table2>
<table2>
</table2>
<table3>
</table3>
</root>
class XMLConfig
{
/// <summary>
/// XML文件名
///
</summary>
private static string fileName;
///
<summary>
/// 数据集
/// </summary>
private static DataSet objDataSet;
/// <summary>
///
表名
/// </summary>
private string
tableName;
private bool updated = false;
static
XMLConfig()
{
fileName =
"data//config.xml";
objDataSet = new DataSet();
objDataSet.ReadXml(fileName);
}
///
<summary>
/// 获取一个表
/// </summary>
/// <param name="tableName">表名</param>
public
XMLConfig(string tableName)
{
this.tableName =
tableName;
}
/// <summary>
///
获取配置
/// </summary>
/// <param
name="index"></param>
/// <param
name="row"></param>
///
<returns></returns>
public object GetConfig(int index,
string row)
{
return
objDataSet.Tables[tableName].Rows[index][row];
}
///
<summary>
/// 修改配置
/// </summary>
/// <param name="index"></param>
/// <param
name="row"></param>
/// <param
name="value"></param>
public void SetConfig(int index,
string row, string value)
{
objDataSet.Tables[tableName].Rows[index][row] = value;
updated =
true;
}
/// <summary>
///
析构函数,程序退出时,如果有修改,则把修改写回XML文件中
/// </summary>
~XMLConfig()
{
if(updated)
objDataSet.WriteXml(fileName);
}
}
最新文章
- Javascript刷题 》数组求和
- 爬虫爬数据时,post数据乱码解决办法
- nginx的简单操作
- ACM/ICPC 之 Kruskal范例(ZOJ1203-POJ1861(ZOJ1542))
- spfa求最长路
- C# 图片盖章功能实现,支持拖拽-旋转-放缩-保存
- Java Concurrency in Practice 读书笔记 第十章
- ViewPager使用笔记
- 【Howie玩docker】-Docker常用命令操作
- Dynamicaly Typed(动态定型), Objective-C Runtime Programming
- springMVC下载文件前修改文件名字
- 获取android手机屏幕的宽高、density
- VK-Cup 2017 qualification 1
- mac下idea搭建maven项目的一些问题总结
- Android并发编程 原子类与并发容器
- Eclipse初次java开发问题总结-4-Maven使用问题汇总
- Ubuntu禁用触摸板
- Convert Application Model Differences
- 应用程序无法正常启动0xc000007b解决
- mac安装redis拓展