/// <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); }
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); }