예제 #1
0
        /// <summary>
        /// 构造连接字符串,静态方法
        /// </summary>
        /// <param name="dataType">数据库类型</param>
        /// <param name="host">主机地址</param>
        /// <param name="database">数据库名</param>
        /// <param name="userName">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="port">[可选参数]端口号</param>
        /// <param name="encoding">[可选参数]编码</param>
        /// <returns></returns>
        public static string CreateConnectionString(DbHelperType dataType, string host, string database, string userName, string password, int?port = null, string encoding = null)
        {
            switch (dataType)
            {
            case DbHelperType.MySql:
                //Server=mysql.kecq.com;UserName=990717_mysql;Password=605911fyj;Database=990717_mysql;Port=4306;CharSet=utf8;
                //string mySqlString = "Host={0};UserName={1};Password={2};Database={3};Port={4};CharSet={5};Allow Zero Datetime=true";
                string mySqlString = "Server={0};Uid={1};Pwd={2};Database={3};Port={4};{5};";
                if (encoding != null)
                {
                    encoding = "CharSet=" + encoding + ";";
                }

                return(String.Format(mySqlString, host, userName, password, database, port == null ? 3306 : port, encoding));

            case DbHelperType.SqlServer:
                return(String.Format("Server={0};Database={1};Uid={2};Pwd={3}", host, database, userName, password));

            case DbHelperType.SqlLite:
                return("data source=" + database);

            case DbHelperType.Oracle:
                string oracleString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={0}) (PORT={1})))(CONNECT_DATA=(SERVICE_NAME={2})));User Id={3}; Password={4}";
                return(String.Format(oracleString, host, port == null ? 1521 : port, database, userName, password));

            default:
                break;
            }
            return(null);
        }
예제 #2
0
        public static IDbHelper CreateIDbHelper(DbHelperType dbType, string connectionString)
        {
            if (dbType == DbHelperType.SqlServer)
            {
                return(new DbHelperSQL(connectionString));
            }
            if (dbType == DbHelperType.MySql)
            {
                string            dllPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "MySql.Data.dll");
                object            obj     = Assembly.LoadFrom(dllPath).CreateInstance("MySql.Data.MySqlClient.MySqlClientFactory");
                DbProviderFactory factory = (DbProviderFactory)obj;
                return(new DbHelper(factory, connectionString));
            }
            if (dbType == DbHelperType.Odbc)
            {
                return(new DbHelper(System.Data.Odbc.OdbcFactory.Instance, connectionString));
            }
            if (dbType == DbHelperType.OleDb)
            {
                return(new DbHelper(System.Data.OleDb.OleDbFactory.Instance, connectionString));
            }
            if (dbType == DbHelperType.Oracle)
            {
                return(new DbHelperOracle(connectionString));
            }
            if (dbType == DbHelperType.SqlLite)
            {
                if (IntPtr.Size == 4)
                {
                    // 32-bit
                }
                else if (IntPtr.Size == 8)
                {
                    // 64-bit
                }
                object            obj     = Assembly.Load("System.Data.SQLite").CreateInstance("System.Data.SQLite.SQLiteFactory");
                DbProviderFactory factory = (DbProviderFactory)obj;
                return(new DbHelper(factory, connectionString));
            }

            return(null);
        }