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