原文地址: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);
}
}