Ejemplo n.º 1
0
        private void tbtnTest_Click(object sender, EventArgs e)
        {
            var item     = lstProvider.SelectedItems[0];
            var provider = ProviderHelper.GetDefinedProviderInstance(item.Group);

            if (provider == null)
            {
                MessageBoxHelper.ShowError(string.Format("没有发现 {0} 的数据库适配器。", item.Group));
            }

            using (var db = new Fireasy.Data.Database(item.Cells[1].Value.ToString(), provider))
            {
                try
                {
                    var exp = db.TryConnect();
                    if (exp == null)
                    {
                        MessageBoxHelper.ShowInformation(string.Format("{0} 连接成功。", item.Text));
                    }
                    else
                    {
                        throw exp;
                    }
                }
                catch (Exception exp)
                {
                    MessageBoxHelper.ShowError(string.Format("{0} 连接失败。详细信息如下:\n\n{1}", item.Text, exp.Message));
                }
            }
        }
Ejemplo n.º 2
0
        private List <Table> GetDbSchema(IList <Table> tables, TableSchemaProcessHandler processHandler)
        {
            var result   = new List <Table>();
            var provider = ProviderHelper.GetDefinedProviderInstance(con.Type);

            using (var db = new Fireasy.Data.Database(con.ConnectionString, provider))
            {
                var providerName = db.Provider.GetType().Name;
                var schema       = db.Provider.GetService <Schema.ISchemaProvider>();
                var foreignKeys  = schema.GetSchemas <Schema.ForeignKey>(db).ToList();
                var dbTypes      = schema.GetSchemas <Schema.DataType>(db).ToList();
                var tableCount   = tables.Count;
                var index        = 0;

                var calc = new Func <int, int>(i =>
                {
                    return((int)((i / (tableCount * 1.0)) * 100));
                });

                var host = new Host();

                foreach (var t in tables)
                {
                    if (Processor.IsCancellationRequested())
                    {
                        return(null);
                    }

                    if (processHandler != null)
                    {
                        processHandler.Invoke(t.Name, calc(++index));
                    }

                    if (t.IsView)
                    {
                        var columns = schema.GetSchemas <Schema.ViewColumn>(db, s => s.ViewName == t.Name);
                        t.Columns.AddRange(ConvertSchemaViewColumns(t, columns, dbTypes, providerName));
                        result.Add(t);
                    }
                    else
                    {
                        var columns = schema.GetSchemas <Schema.Column>(db, s => s.TableName == t.Name);
                        t.Columns.AddRange(ConvertSchemaColumns(t, columns, dbTypes, providerName));
                        result.Add(t);
                    }
                    host.Attach(t);
                }

                ProcessForeignKeys(result, foreignKeys);
            }

            return(result);
        }
Ejemplo n.º 3
0
        private void btnTest_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            if (txtConnStr.Text.Trim() == string.Empty)
            {
                errorProvider1.SetError(txtConnStr, "请输入数据库连接字符串");
                return;
            }

            var sourceName = txtName.Text;

            if (string.IsNullOrEmpty(sourceName))
            {
                sourceName = "未命名";
            }

            var provider = ProviderHelper.GetDefinedProviderInstance(Current.Type);

            if (provider == null)
            {
                MessageBoxHelper.ShowError(string.Format("没有发现 {0} 的数据库适配器。", Current.Type));
            }

            using (var db = new Fireasy.Data.Database(txtConnStr.Text, provider))
            {
                try
                {
                    var exp = db.TryConnect();
                    if (exp == null)
                    {
                        MessageBoxHelper.ShowInformation(string.Format("{0} 连接成功。", sourceName));
                    }
                    else
                    {
                        throw exp;
                    }
                }
                catch (Exception exp)
                {
                    MessageBoxHelper.ShowError(string.Format("{0} 连接失败。详细信息如下:\n\n{1}", sourceName, exp.Message));
                }
            }
        }
Ejemplo n.º 4
0
 private IEnumerable <Table> OpenDb()
 {
     try
     {
         var provider = ProviderHelper.GetDefinedProviderInstance(con.Type);
         using (var db = new Fireasy.Data.Database(con.ConnectionString, provider))
         {
             var schemaName = db.Provider.GetConnectionParameter(db.ConnectionString).Schema;
             var schema     = db.Provider.GetService <Schema.ISchemaProvider>();
             var tables     = schema.GetSchemas <Schema.Table>(db, s => s.Schema == schemaName);
             return(ConvertSchemaTables(tables));
         }
     }
     catch (Exception exp)
     {
         ErrorMessageBox.Show("获取数据架构时出错。", exp);
         return(null);
     }
 }
Ejemplo n.º 5
0
 private IEnumerable <Table> OpenDb(SourceOption option)
 {
     try
     {
         var provider = ProviderHelper.GetDefinedProviderInstance(con.Type);
         using (var db = new Fireasy.Data.Database(con.ConnectionString, provider))
         {
             var schema = db.Provider.GetService <Schema.ISchemaProvider>();
             var tables = schema.GetSchemas <Schema.Table>(db).ToList();
             var views  = option.View ? schema.GetSchemas <Schema.View>(db).ToList() : new List <Schema.View>();
             return(ConvertSchemaTables(tables, views));
         }
     }
     catch (Exception exp)
     {
         ErrorMessageBox.Show("获取数据架构时出错。", exp);
         return(null);
     }
 }