Esempio n. 1
0
        /// <summary>
        /// 创建指定帐号的SQL连接.
        /// </summary>
        /// <param name="DBName">帐套的数据库名或系统数据库名</param>
        /// <returns></returns>
        public SqlConnection CreateConnection(string DBName)
        {
            //下面的代码是按帐套创建数据库连接
            if (String.IsNullOrEmpty(DBName)) throw new Exception("没指定帐套,无法获取数据!");

            string sConn;

            //连接系统数据库,取连接配置参数(INI文件)
            if (DBName == Globals.DEF_SYSTEM_DB)
                sConn = new SqlConfiguration().CurrentConnectionString;
            else if (DBName == Globals.DEF_MASTER_DB)
            {
                sConn = new SqlConfiguration().CurrentConnectionString;
                sConn = sConn.Replace(Globals.DEF_SYSTEM_DB, Globals.DEF_MASTER_DB);
            }
            else
            {
                //连接帐套数据库
                DataRow current = DataSetCache.FindDataSet(DBName);
                if (current == null) throw new Exception("无效的帐套数据库名!");

                //连接帐套数据库, 要跟据帐套参数定义创建连接字符串
                sConn = "Server={0};Database={1};User ID={2};Password={3};Connection TimeOut=180;";
                sConn = String.Format(sConn,
                    current["ServerIP"].ToString(),
                    current["DBName"].ToString(),
                    current["DBUserName"].ToString(),
                    current["DBUserPassword"].ToString());
            }

            SqlConnection conn = new SqlConnection(sConn);
            if (conn.State != ConnectionState.Connecting) conn.Open();
            return conn;
        }