using MySql.Data.MySqlClient; using Oracle.ManagedDataAccess.Client; using System; using System.Configuration; using System.Data.Common; using System.Data.SqlClient; using WX.CRM.Common; using WX.Interface.Security; namespace WX.CRM.Model { /********************************************************************************** * * 功能说明:管理连接字符串 * 作者: * 版本: 2014-08-05 1.0 * * *******************************************************************************/ public class ConStringHelper { //public static readonly bool ConStringEncrypt = ConfigurationManager.AppSettings["ConStringEncrypt"] != null ? Convert.ToBoolean(ConfigurationManager.AppSettings["ConStringEncrypt"]) : false; //public static readonly string AYCRMConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["crmContext"] != null ? ConfigurationManager.ConnectionStrings["crmContext"].ToString() : ""); //public static readonly string OLAPConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["olapContext"] != null ? ConfigurationManager.ConnectionStrings["olapContext"].ToString() : ""); //public static readonly string MNOLAPConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["MnOlapContext"] != null ? ConfigurationManager.ConnectionStrings["MnOlapContext"].ToString() : ""); //public static readonly string GGDEVConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["GGDevContext"] != null ? ConfigurationManager.ConnectionStrings["GGDevContext"].ToString() : ""); //public static readonly string IMCRMCon = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["IMCRM"] != null ? ConfigurationManager.ConnectionStrings["IMCRM"].ToString() : ""); //public static readonly string WSKUSERCon = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["Entities"] != null ? ConfigurationManager.ConnectionStrings["Entities"].ToString() : ""); private static bool _conStringEncrypt; private static int _isEncrypt; private static string _AYCRMConn; private static string _AYCRMConn2;//上传用到 private static string _WSKUSERCon; private static string _CRMRESMYSQLConn; private static string _databaseTypeStr; private static string _YunCrmConn; private static string _qhConn; private static DatabaseTypeNum _databaseType; public static DatabaseTypeNum DatabaseType { get { //默认是Oracle if (string.IsNullOrEmpty(_databaseTypeStr)) { _databaseTypeStr = ConfigurationManager.AppSettings["DatabaseType"] != null ? ConfigurationManager.AppSettings["DatabaseType"].ToString() : "ORACLE"; switch (_databaseTypeStr) { case "ORACLE": _databaseType = DatabaseTypeNum.ORACLE; break; case "SQLSERVER": _databaseType = DatabaseTypeNum.SQLSERVER; break; case "MYSQL": _databaseType = DatabaseTypeNum.MYSQL; break; default: _databaseType = DatabaseTypeNum.ORACLE; break; } } return ConStringHelper._databaseType; } } public static string CRMRESMYSQLConn { get { if (string.IsNullOrEmpty(_CRMRESMYSQLConn)) _CRMRESMYSQLConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["CRMRESMYSQLConn"] != null ? ConfigurationManager.ConnectionStrings["CRMRESMYSQLConn"].ToString() : ""); return ConStringHelper._CRMRESMYSQLConn; } set { ConStringHelper._CRMRESMYSQLConn = value; } } /// /// 是否加密(取至配置ConStringEncrypt) /// public static bool ConStringEncrypt { get { if (_isEncrypt == 0) { _conStringEncrypt = ConfigurationManager.AppSettings["ConStringEncrypt"] != null ? Convert.ToBoolean(ConfigurationManager.AppSettings["ConStringEncrypt"]) : false; _isEncrypt = 1; } return ConStringHelper._conStringEncrypt; } set { ConStringHelper._conStringEncrypt = value; } } /// /// 主库连接 取至crmContext /// public static string YunCrmConn { get { if (string.IsNullOrEmpty(_YunCrmConn)) _YunCrmConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["yunContext"] != null ? ConfigurationManager.ConnectionStrings["yunContext"].ToString() : ""); return ConStringHelper._YunCrmConn; } } /// /// 投顾数据库 /// public static string TGCrmConn { get { if (string.IsNullOrEmpty(_qhConn)) _qhConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["TGContext"] != null ? ConfigurationManager.ConnectionStrings["TGContext"].ToString() : ""); return ConStringHelper._qhConn; } } /// /// 主库连接 取至qhContext /// public static string QhCrmConn { get { if (string.IsNullOrEmpty(_qhConn)) _qhConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["qhContext"] != null ? ConfigurationManager.ConnectionStrings["qhContext"].ToString() : ""); return ConStringHelper._qhConn; } } /// /// 主库连接 取至crmContext /// public static string AYCRMConn2 { get { if (string.IsNullOrEmpty(_AYCRMConn2)) _AYCRMConn2 = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["AYCRMConn2"] != null ? ConfigurationManager.ConnectionStrings["AYCRMConn2"].ToString() : ""); return ConStringHelper._AYCRMConn2; } } /// /// 主库连接 取至crmContext /// public static string AYCRMConn { get { if (string.IsNullOrEmpty(_AYCRMConn)) _AYCRMConn = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["crmContext"] != null ? ConfigurationManager.ConnectionStrings["crmContext"].ToString() : ""); return ConStringHelper._AYCRMConn; } } /// /// 数据同步数据库 取至Entities /// public static string WSKUSERCon { get { if (string.IsNullOrEmpty(_WSKUSERCon)) _WSKUSERCon = GetDecryptConnectingString(ConfigurationManager.ConnectionStrings["Entities"] != null ? ConfigurationManager.ConnectionStrings["Entities"].ToString() : ""); return ConStringHelper._WSKUSERCon; } set { ConStringHelper._WSKUSERCon = value; } } public static string GetDecryptConnectingString(string conn) { if (ConStringEncrypt) { try { string clientId = Utility.GetSettingByKey("CRMClientKey"); ClientKey client = ClientKey.GetClientKey(clientId); EncDecUtil util = new EncDecUtil(); string connectingStr = util.decyptData(conn, client.AccessKey);//解密字符串 //LogHelper.Error("访问了解密:" + connectingStr); return connectingStr; } catch (Exception ex) { LogHelper.Error("连接字符串解密出错:" + ex.ToString()); return conn; } } return conn; } /// /// 从配置中判断是oracle 还是sqlserver /// /// /// public static DbConnection GetDbConnection(string connecting) { DbConnection jb = null; switch (ConStringHelper.DatabaseType) { case DatabaseTypeNum.SQLSERVER: jb = new SqlConnection(connecting); break;//sqlserver连接 case DatabaseTypeNum.ORACLE: jb = new OracleConnection(connecting); break;//Oracle连接 case DatabaseTypeNum.MYSQL: jb = new MySqlConnection(connecting); break;//Oracle连接 default: jb = new OracleConnection(connecting); break;//默认是Oracle连接 } return jb; } /// /// 自定义传递数据库类型 /// /// /// /// public static DbConnection GetDbConnection(string connecting, DatabaseTypeNum typenum) { DbConnection jb = null; //LogHelper.Info("连接字符串:" + connecting); switch (typenum) { case DatabaseTypeNum.SQLSERVER: jb = new SqlConnection(connecting); break;//sqlserver连接 case DatabaseTypeNum.ORACLE: jb = new OracleConnection(connecting); break;//Oracle连接 case DatabaseTypeNum.MYSQL: jb = new MySqlConnection(connecting); break;//Oracle连接 default: jb = new OracleConnection(connecting); break;//默认是Oracle连接 } return jb; } public enum DatabaseTypeNum { SQLSERVER, ORACLE, MYSQL } } }