数据库操作类与Xml文档操作(保存/读取Connectionstring)

using System;
using System.Collections;
using System.Text;
using System.Security.Cryptography;
using System.IO;


    /// <summary>
    /// 数据库操作类与Xml文档操作(保存/读取Connectionstring)
    /// </summary>

    class DBOperation
    {
        /// <summary>
        /// 配置文件结构
        /// </summary>

        public struct ConfigStruct
        {
            /// <summary>
            /// 数据库服务器主机地址
            /// </summary>
            public string hostAddress  ;
            /// <summary>
            /// 用户名
            /// </summary>
            public string userName ;
            /// <summary>
            /// 密码
            /// </summary>
            public string password ;
            /// <summary>
            /// 数据库名
            /// </summary>
            public string DBName ;
        }


        /// <summary>
        /// 类构造函数
        /// </summary>

        public DBOperation()
        { 
        //
        }


        #region 定义用于写XML文档的字段名的变量
        private string str_HA  = "hostAddress";
        private string str_UN  = "userName";
        private string str_PWD = "password";
        private string str_DBN = "DBName";
        #endregion        
        
        #region 读写Xml文档
        /// <summary>
        /// 读XML文档
        /// </summary>
        /// <param name="name">要取的配置文件中的指定数据源的名字,如:旧系统 "oldsystem" </param>

        public ConfigStruct readXML(string name)
        {   
            try
            {
                //定义新的结构变量
                ConfigStruct cfg = new ConfigStruct();

                //定义一个新的dataset
                System.Data.DataSet ds = new System.Data.DataSet();

                //判断文件是否存在,不存在提示错误并返回一个空的结构对象
                if (System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
                {                
                    //如果存在则读取config.xml文件的数据
                    ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
                }
                else
                {
                    //                    System.Windows.Forms.MessageBox.Show("config.xml文件不存在!" , "警告", 
                    //                        System.Windows.Forms.MessageBoxButtons.OK , 
                    //                        System.Windows.Forms.MessageBoxIcon.Warning);                    
                    return new ConfigStruct();
                }
                
                //判断表是否存在,不存在提示错误并返回一个空的结构对象
                if (ds.Tables.IndexOf(name.ToUpper())== -1 )
                {
                    //                    System.Windows.Forms.MessageBox.Show("在config.xml中不能找到相关的数据源的配置信息!" , "警告", 
                    //                        System.Windows.Forms.MessageBoxButtons.OK , 
                    //                        System.Windows.Forms.MessageBoxIcon.Warning);                    
                    return new ConfigStruct();                    
                }

                SymmetricMethod sm = new SymmetricMethod();
                
                //存在则取其值
                cfg.hostAddress = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_HA)   + "'")[0]["value"].ToString());
                cfg.userName    = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_UN)   + "'")[0]["value"].ToString());
                cfg.password    = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_PWD)  + "'")[0]["value"].ToString());
                cfg.DBName      = sm.Decrypto(ds.Tables[name.ToUpper()].Select("key='" + sm.Encrypto(str_DBN)  + "'")[0]["value"].ToString());

                ds.Dispose();

                return cfg;
            }
            catch//(Exception exp)
            {
                //System.Windows.Forms.MessageBox.Show(exp.Message);
                return new ConfigStruct();
            } 
        }

        /// <summary>
        /// 写XML文档
        /// </summary>
        /// <param name="name">数据源的名称</param>
        /// <param name="hostAddress">主机地址值</param>
        /// <param name="DBName">数据库名称</param>
        /// <param name="UserName">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="con_str">数据库的数据源信息</param>

        public Boolean writeXML(string name , string hostAddress ,string DBName ,
            string UserName ,string password)
        {
            try
            {
                //定义一个dataset
                System.Data.DataSet   ds = new System.Data.DataSet("config");
                
                //判断是否存在config.xml文件,如果存在从该文件中读取内容到dataset
                if(System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory +"config.xml"))
                {
                    ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory +"config.xml");
                }
                
                //判断是否存在该表,如果存在则删除该表
                if(ds.Tables.IndexOf(name.ToUpper()) != -1 )
                {
                    ds.Tables.Remove(name.ToUpper());
                }

                //定义一个datatable
                System.Data.DataTable dt = new System.Data.DataTable(name.ToUpper());

                //为新定义的表增加列
                dt.Columns.Add("key");
                dt.Columns.Add("value");
                
                SymmetricMethod sm = new SymmetricMethod();

                //增加记录表新定义的表中
                dt.Rows.Add(new object[2]{ sm.Encrypto( str_HA ) , sm.Encrypto( hostAddress)});
                dt.Rows.Add(new object[2]{ sm.Encrypto( str_UN ) , sm.Encrypto( UserName)});
                dt.Rows.Add(new object[2]{ sm.Encrypto( str_PWD) , sm.Encrypto( password)});
                dt.Rows.Add(new object[2]{ sm.Encrypto( str_DBN) , sm.Encrypto( DBName)});
                
                //将表增加到定义的新的dataset中
                ds.Tables.Add(dt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值