Пример #1
0
        public static BaseService CreateInstance(DbBaseType dbType)
        {
            var         types   = Assembly.GetExecutingAssembly().GetTypes().Where(m => typeof(BaseService).IsAssignableFrom(m) && !m.IsAbstract && m.IsClass && !m.IsInterface).ToList();
            BaseService service = null;

            for (int i = 0; i < types.Count; i++)
            {
                var item         = types[i];
                var value        = item.GetProperty("DbBaseType");
                var instaceValue = Activator.CreateInstance(item);
                var propItem     = value.GetValue(instaceValue, null)?.ToString();
                if (dbType.ToString() == propItem)
                {
                    service = instaceValue as BaseService;
                    break;
                }
            }
            return(service);
        }
Пример #2
0
        private static string ParseType(string typename, DbBaseType type)
        {
            string res = string.Empty;

            switch (type)
            {
            case DbBaseType.Oracle:
                res = OracleParseType(typename);
                break;

            case DbBaseType.SqlServer:
                res = SQLServerParseType(typename);
                break;

            case DbBaseType.MySql:
                res = MySQLServerParseType(typename);
                break;
            }
            return(res);
        }
Пример #3
0
        /// <summary>
        /// 登陆
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLogin_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(textAddress.Text))
            {
                MessageBox.Show("数据库链接字符串不能为空");
                return;
            }
            if (string.IsNullOrWhiteSpace(comboBox2.Text))
            {
                MessageBox.Show("数据库类型不能为空");
                return;
            }
            this.label3.Visible = true;
            label3.Text         = "数据库正在连接中,请稍后...";
            var typeName = this.comboBox2.Text;

            DbInstaceType = CodeExtendsition.GetBaseType(typeName);
            var dbInstance = DbFactory.CreateInstance(DbInstaceType);

            ConnectionStr = textAddress.Text;
            var result = Task.Factory.StartNew(() => ConnectionDb(dbInstance));   //dbInstance.ConnectionDb(this.textAddress.Text);

            result.Wait();
            var dataRes = result.Result;

            if (dataRes.Success)
            {
                MainFrom me = new MainFrom();
                me.Show();
                this.Hide();
            }
            else
            {
                this.label3.Text = "数据库连接失败";
                MessageBox.Show(dataRes.Message);
            }
        }
Пример #4
0
 /// <summary>
 /// 初始化数据库类型 0 - SqlServer; 1 - Oracle; 2 - MySql
 /// </summary>
 /// <param name="dBType">0 - SqlServer; 1 - Oracle; 2 - MySql</param>
 public static void Init(DbBaseType dBType)
 {
     DBType = (int)dBType;
 }