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

最新文章

  1. Javascript刷题 》数组求和
  2. 爬虫爬数据时,post数据乱码解决办法
  3. nginx的简单操作
  4. ACM/ICPC 之 Kruskal范例(ZOJ1203-POJ1861(ZOJ1542))
  5. spfa求最长路
  6. C# 图片盖章功能实现,支持拖拽-旋转-放缩-保存
  7. Java Concurrency in Practice 读书笔记 第十章
  8. ViewPager使用笔记
  9. 【Howie玩docker】-Docker常用命令操作
  10. Dynamicaly Typed(动态定型), Objective-C Runtime Programming
  11. springMVC下载文件前修改文件名字
  12. 获取android手机屏幕的宽高、density
  13. VK-Cup 2017 qualification 1
  14. mac下idea搭建maven项目的一些问题总结
  15. Android并发编程 原子类与并发容器
  16. Eclipse初次java开发问题总结-4-Maven使用问题汇总
  17. Ubuntu禁用触摸板
  18. Convert Application Model Differences
  19. 应用程序无法正常启动0xc000007b解决
  20. mac安装redis拓展

热门文章

  1. 设置UWP程序自启动(Automate launching Windows 10 UWP apps)
  2. LINQ多条件OR模糊查询
  3. SQL Server 2008 常见异常收集(持续更新)
  4. IOS—通过ChildViewController实现view的切换
  5. C# Socket通信 小案例
  6. HTML5 文件处理之FileAPI简介整理
  7. c#正则表达式采集数据
  8. eclipse代码注释的设置
  9. MVC中javascript直接调用Model
  10. ORACLE多表关联UPDATE 语句