public FormCodeOutput(Model.Database database) { InitializeComponent(); cobCodeFrame.SelectedIndex = 0; cobCacheFrame.SelectedIndex = 0; cobDALFrame.SelectedIndex = 0; //关于注册 //CheckForIllegalCrossThreadCalls = false; //Thread threadCheckRegister = new Thread(CheckRegister); //threadCheckRegister.Start(); _dbtype = database.Type; _dbName = database.DatabaseName; _tables = database.Tables; //如果是Access数据库,不能使用缓存依赖,不能使用存储过程,不能生成存储过程 if (_dbtype == Model.Database.DatabaseType.Access) { cobCacheFrame.Items.Remove(cobCacheFrame.Items[2]); cobDALFrame.Enabled = false; btnOutputSp.Enabled = false; } foreach (Model.Table table in _tables) { lstTables.Items.Add(table.Name); } }
void frmDatabase_OutputCode(Model.Database db) { OutputCodeForm frm = new OutputCodeForm(db); frm.ShowReadmeOfTemplate += new Action <string>(ShowTemplateReadme); frm.Show(MainForm.dockPanel); }
public Model.Database GetSchema(string connectionString, Model.Database.DatabaseType type) { Model.Database database = new Model.Database(); database.ConnectionString = connectionString; database.Type = type; using (SqlConnection connection = new SqlConnection()) { try { DBUtility.DBHelper dbHelper = new DBUtility.DBHelper(DBUtility.DBHelper.DatabaseTypes.Sql, database.ConnectionString); DataSet ds = dbHelper.ExecuteQuery(CommandType.Text, GetSql(database.Type, SchemeHelper.SchemaType.Table), null); database.Tables = GetSQLTableList(ds); ds = dbHelper.ExecuteQuery(CommandType.Text, GetSql(database.Type, SchemeHelper.SchemaType.View), null); database.Views = GetSQLTableList(ds); ds = dbHelper.ExecuteQuery(CommandType.Text, SqlForGetStoreProcedures, null); database.StoreProcedures = GetSQLStoreProcedureList(ds); return(database); } catch { return(null); } } }
private static void Exists(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 是否存在该记录"); AppendFormatLine(code, 2, "/// </summary>"); AppendFormatLine(code, 2, "public bool Exists({0})", GetArgumentsOfFunction(table)); AppendFormatLine(code, 2, "{"); if (style.CmdType != CommandType.StoredProcedure) { AppendFormatLine(code, 3, "StringBuilder strSql;"); } AppendFormatLine(code, 3, "DbParameter[] cmdParms;"); switch (style.CmdType) { case System.Data.CommandType.StoredProcedure: AppendFormatLine(code, 3, "PrepareExistCommand({0}, out cmdParms);", GetArgumentValuesOfFunction(table)); AppendFormatLine(code, 3, "object obj = {0}.ExecuteScalar(CommandType.StoredProcedure, \"sp_{1}_Exists\", cmdParms);", style.DBHelperName, table.Name); break; case System.Data.CommandType.Text: default: AppendFormatLine(code, 3, "PrepareExistCommand({0}, out strSql, out cmdParms);", GetArgumentValuesOfFunction(table)); AppendFormatLine(code, 3, "object obj = {0}.ExecuteScalar(CommandType.Text, strSql.ToString(), cmdParms);", style.DBHelperName); break; } AppendFormatLine(code, 3, "return int.Parse(obj.ToString()) > 0;"); AppendFormatLine(code, 2, "}"); }
private void menuDelete_Click(object sender, EventArgs e) { if (CreateCode != null) { string dbName = tvDatabase.SelectedNode.Parent.Parent.Text; Model.Database db = tvDatabase.SelectedNode.Parent.Parent.Tag as Model.Database; Model.Table table = tvDatabase.SelectedNode.Tag as Model.Table; if (table != null) { SqlSeleteViewForm ssv = new SqlSeleteViewForm(db, table); string str = "\nwhere 1 = 1"; string str2 = "delete from "; str2 = (str2 + "" + this.tvDatabase.SelectedNode.Text + "") + str; if ((ssv.sqlTextEditor.Text.Trim().Length != 0) && (ssv.sqlTextEditor.Text[ssv.sqlTextEditor.Text.Length - 1] != '\n')) { ssv.sqlTextEditor.Text = ssv.sqlTextEditor.Text + "\n"; } ssv.sqlTextEditor.Text = ssv.sqlTextEditor.Text + str2; ssv.Show(MainForm.dockPanel); } else { ShowMessage.Alert("请先选中一个表或视图。"); } } }
public IEnumerable <string> Resolve(Model.Database database) { var databasesString = new List <string>(); try { var conString = string.Format("Server={0};Port={1};User Id={2};Password={3};Database={4};", database.Server, database.Port, database.Username, database.Password, "postgres"); using (var connection = new NpgsqlConnection(conString)) using (var command = new NpgsqlCommand("select datname from pg_database where datistemplate = 'f' AND datname <> 'postgres' order by datname", connection)) { connection.Open(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { databasesString.Add(reader.GetString(0)); } } } } catch (NpgsqlException) { return(null); } return(databasesString); //.Select(databaseString => new DatabaseType //{ // Name = databaseString, // DatabaseTypeEnum = IoC.Resolve<DatabaseResolver>().Resolve(database) //}).ToList(); }
private static void Delete(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 删除一条数据"); AppendFormatLine(code, 2, "/// </summary>"); AppendFormatLine(code, 2, "public int Delete({0})", GetArgumentsOfFunction(table)); AppendFormatLine(code, 2, "{"); if (style.CmdType != CommandType.StoredProcedure) { AppendFormatLine(code, 3, "StringBuilder strSql;"); } AppendFormatLine(code, 3, "DbParameter[] cmdParms;"); switch (style.CmdType) { case System.Data.CommandType.StoredProcedure: AppendFormatLine(code, 3, "PrepareDeleteCommand({0}, out cmdParms);", GetArgumentValuesOfFunction(table)); AppendFormatLine(code, 3, "return {0}.ExecuteNonQuery(CommandType.StoredProcedure, \"sp_{1}_Delete\", cmdParms);", style.DBHelperName, table.Name); break; case System.Data.CommandType.Text: default: AppendFormatLine(code, 3, "PrepareDeleteCommand({0}, out strSql, out cmdParms);", GetArgumentValuesOfFunction(table)); AppendFormatLine(code, 3, "return {0}.ExecuteNonQuery(CommandType.Text, strSql.ToString(), cmdParms);", style.DBHelperName); break; } AppendFormatLine(code, 2, "}"); }
public static void CreateStoreProcedureFile(Model.Database db, List <Model.Table> selTables, string path) { StringBuilder code = new StringBuilder(); switch (db.Type) { case Model.Database.DatabaseType.MySql: foreach (Model.Table table in selTables) { code.Append(Codes.MySqlStoreProcedureCode.GetMySqlStoreProcedureCode(table)); } FileStream.WriteFile(path + "\\StoreProcedures(for MySql).sql", code.ToString()); break; case Model.Database.DatabaseType.Access: case Model.Database.DatabaseType.Sql2000: case Model.Database.DatabaseType.Sql2005: default: foreach (Model.Table table in selTables) { code.Append(Codes.SqlStoredProcedureCode.GetSqlStoredProcedureCode(table)); } FileStream.WriteFile(path + "\\StoreProcedures(for SqlServer).sql", code.ToString()); break; } }
public List <DesignIssueWarning> GetDesignIssueWarnings(Model.Database database) { if (database == null) { return(null); //cannot act on empty input } List <DesignIssueWarning> warningList = new List <DesignIssueWarning>(); DesignIssueWarning objectNamedWithReservedWord = this.getDesignIssueWarningForObjectNamedWithReservedWordssignIssueWarning(database); if (objectNamedWithReservedWord != null) { warningList.Add(objectNamedWithReservedWord); } DesignIssueWarning objectNameContainingSpecialChars = this.getDesignIssueForObjectsWithSpecialCharactersInName(database); if (objectNameContainingSpecialChars != null) { warningList.Add(objectNameContainingSpecialChars); } List <DesignIssueWarning> sprocWarningList = this.sprocInspector.GetDesignIssueWarning(database); if (sprocWarningList.HasAny()) { warningList.AddRange(sprocWarningList); } return(warningList); }
public static void CreateDALFile(Model.Database db, List <Model.Table> selTables, Model.CodeStyle style, string path) { FileStream.WriteFile(path + "\\" + style.AfterNamespaceDot + "DALHelper.cs", Codes.DALCode.GetDALHelperCode(db, style)); foreach (Model.Table table in selTables) { string editablePath = path + "\\editable\\"; if (!System.IO.Directory.Exists(editablePath)) { System.IO.Directory.CreateDirectory(editablePath); } string filePath = editablePath + "\\" + style.AfterNamespaceDot + table.Name + ".cs"; FileStream.WriteFile(filePath, Codes.DALCode.GetDALCode(db, table, style)); } foreach (Model.Table table in selTables) { string internalPath = path + "\\internal\\"; if (!System.IO.Directory.Exists(internalPath)) { System.IO.Directory.CreateDirectory(internalPath); } string filePath = internalPath + style.AfterNamespaceDot + table.Name + ".cs"; FileStream.WriteFile(filePath, Codes.DALCode.GetInternalDALCode(db, table, style)); } }
void frmDatabase_OutputCode(Model.Database db) { OutputCodeForm frm = new OutputCodeForm(db); frm.ShowDebug += new Action <string, string, bool>(frm_ShowDebug); frm.Show(MainForm.dockPanel); }
public static void CreateBLFile(Model.Database db, List <Model.Table> selTables, Model.CodeStyle style, string path) { foreach (Model.Table table in selTables) { string filePath; List <Model.Field> l = table.Fields; switch (style.BlFrame) { case Model.CodeStyle.BLFrame.BLS: filePath = path + "\\" + style.AfterNamespaceDot + table.Name + ".asmx"; FileStream.WriteFile(filePath, Codes.BLCode.GetBLCode(db, table, style)); filePath = path + "\\" + style.AfterNamespaceDot + table.Name + ".asmx.cs"; FileStream.WriteFile(filePath, Codes.BLCode.GetBLCSCode(db, table, style)); break; case Model.CodeStyle.BLFrame.BLL: default: filePath = path + "\\" + style.AfterNamespaceDot + table.Name + ".cs"; FileStream.WriteFile(filePath, Codes.BLCode.GetBLCSCode(db, table, style)); break; } FileStream.WriteFile(filePath, Codes.BLCode.GetBLCSCode(db, table, style)); } FileStream.WriteFile(path + "\\BLHelper.cs", Codes.BLCode.GetBLHelperCode(style)); }
/// <summary> /// 显示第二级节点:表,视图,存储过程文件夹 /// </summary> private void ShowFolders(Model.Database db, TreeNode nodeRoot) { //添加“表”文件夹 TreeNode nodeTableFolder = new TreeNode("表", 1, 1); nodeRoot.Nodes.Add(nodeTableFolder); //添加表 ShowTables(db, nodeTableFolder); nodeTableFolder.Expand(); //添加“视图”文件夹 TreeNode nodeViewFolder = new TreeNode("视图", 1, 1); nodeRoot.Nodes.Add(nodeViewFolder); //添加视图 ShowViews(db, nodeViewFolder); //添加“存储过程”文件夹 TreeNode nodeStoreProceduresFolder = new TreeNode("存储过程", 1, 1); nodeRoot.Nodes.Add(nodeStoreProceduresFolder); //添加存储过程 ShowStoreProcedures(db, nodeStoreProceduresFolder); }
/// <summary> /// 显示第三级节点:存储过程 /// </summary> private static void ShowStoreProcedures(Model.Database db, TreeNode nodeRoot) { foreach (string storeProcedure in db.StoreProcedures) { nodeRoot.Nodes.Add(new TreeNode(storeProcedure, 5, 5)); } }
private static void Add(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 增加一条数据"); AppendFormatLine(code, 2, "/// </summary>"); AppendFormatLine(code, 2, "public int Add({0}.{1} model)", style.ModelNameSpace, table.Name); AppendFormatLine(code, 2, "{"); if (style.CmdType != CommandType.StoredProcedure) { AppendFormatLine(code, 3, "StringBuilder strSql;"); } AppendFormatLine(code, 3, "DbParameter[] cmdParms;"); switch (style.CmdType) { case System.Data.CommandType.StoredProcedure: AppendFormatLine(code, 3, "PrepareAddCommand(model, out cmdParms);"); AppendFormatLine(code, 3, "return {0}.ExecuteNonQuery(CommandType.StoredProcedure, \"sp_{1}_Add\", cmdParms);", style.DBHelperName, table.Name); break; case System.Data.CommandType.Text: default: AppendFormatLine(code, 3, "PrepareAddCommand(model, out strSql, out cmdParms);"); AppendFormatLine(code, 3, "return {0}.ExecuteNonQuery(CommandType.Text, strSql.ToString(), cmdParms);", style.DBHelperName); break; } AppendFormatLine(code, 2, "}"); }
private void menuInsert_Click(object sender, EventArgs e) { if (CreateCode != null) { string dbName = tvDatabase.SelectedNode.Parent.Parent.Text; Model.Database db = tvDatabase.SelectedNode.Parent.Parent.Tag as Model.Database; Model.Table table = tvDatabase.SelectedNode.Tag as Model.Table; if (table != null) { SqlSeleteViewForm ssv = new SqlSeleteViewForm(db, table); string str = ""; string str2 = "insert into "; str2 = (str2 + "" + this.tvDatabase.SelectedNode.Text + "") + " (" + this.tvDatabase.SelectedNode.Nodes[0].Text; for (int i = 1; i < this.tvDatabase.SelectedNode.Nodes.Count; i++) { str = str + ",''"; str2 = str2 + "," + this.tvDatabase.SelectedNode.Nodes[i].Text; } str2 = (str2 + ") \n" + "values(''") + str + ")"; if ((ssv.sqlTextEditor.Text.Trim().Length != 0) && (ssv.sqlTextEditor.Text[ssv.sqlTextEditor.Text.Length - 1] != '\n')) { ssv.sqlTextEditor.Text = ssv.sqlTextEditor.Text + "\n"; } ssv.sqlTextEditor.Text = ssv.sqlTextEditor.Text + str2; ssv.Show(MainForm.dockPanel); } else { ShowMessage.Alert("请先选中一个表或视图。"); } } }
public static void GenerateFiles(string templateFolder, Model.Database database, List <Setting> settings, string basePath, ProcessChanged onProcessChanged) { List <Template> templates = CreateTemplates(templateFolder, database, settings); if (templates.Count > 0) { int process = 0; int step = 100 / templates.Count; if (step < 1) { step = 1; } foreach (Template item in templates) { try { item.AttachFiles(basePath); item.GenerateFile(basePath); process = AddProcess(onProcessChanged, process, step); } catch (Exception ex) { throw new Exception(string.Format("生成代码文件{0}失败:{1}", item.TemplateName, ex.Message)); } } ChangeProcess(onProcessChanged, 100); } }
private static void GetCount(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 获取数量"); AppendFormatLine(code, 2, "/// </summary>"); AppendFormatLine(code, 2, "public int GetCount()"); AppendFormatLine(code, 2, "{"); switch (style.CmdType) { case System.Data.CommandType.StoredProcedure: AppendFormatLine(code, 3, "object obj = {0}.ExecuteScalar(CommandType.StoredProcedure, \"sp_{1}_GetCount\", null);", style.DBHelperName, table.Name); break; case System.Data.CommandType.Text: default: AppendFormatLine(code, 3, "object obj = {0}.ExecuteScalar(CommandType.Text, \"SELECT count(*) FROM {1}\", null);", style.DBHelperName, table.Name); break; } AppendFormatLine(code, 3, "return int.Parse(obj.ToString());"); AppendFormatLine(code, 2, "}"); }
public CodeCreateForm(ContextMenuStrip cms, Model.Database db, Model.Table table) { InitializeComponent(); this.TabPageContextMenuStrip = cms; styleUserControl1.DB = db; styleUserControl1.LoadConfig(); this.db = db; this.table = table; this.TabText = string.Format("生成代码 {0}", table.Name); tcCodes.Controls.Clear(); TextEditor.SetStyle(txtInternalModel, "C#"); TextEditor.SetStyle(txtModel, "C#"); TextEditor.SetStyle(txtIDAL, "C#"); TextEditor.SetStyle(txtDALFactory, "C#"); TextEditor.SetStyle(txtInternalDAL, "C#"); TextEditor.SetStyle(txtDAL, "C#"); TextEditor.SetStyle(txtBL, "C#"); TextEditor.SetStyle(txtUserControl, "HTML"); TextEditor.SetStyle(txtUserControlDesignerCs, "C#"); TextEditor.SetStyle(txtUserControlCs, "C#"); TextEditor.SetStyle(txtICacheDependency, "C#"); TextEditor.SetStyle(txtTableDependency, "C#"); TextEditor.SetStyle(txtTableCacheDependency, "C#"); TextEditor.SetStyle(txtDependencyAccess, "C#"); TextEditor.SetStyle(txtDependencyFacade, "C#"); }
static void Main(string[] args) { // Connect to Server Model.Server server = new Model.Server("http://localhost/11SP9"); // Load Solution server.LoadAssembly("Aras.Model.Design"); // Get Database Model.Database database = server.Database("Development"); // Start Session Model.Session session = database.Login("admin", IO.Server.PasswordHash("innovator")); // Find Document Model.Query docquery = session.Query("Document"); docquery.Select = "item_number,name,description"; Model.Design.Document document = (Model.Design.Document)docquery.Store.First(); using (Transaction trans = session.BeginTransaction()) { document.Update(trans); document.Name = "Test"; trans.Commit(true); } }
public IHttpActionResult PutDatabase(int id, Model.Database database) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != database.Id) { return(BadRequest()); } db.Entry(database).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!DatabaseExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public Model.Database GetSchema(string connectionString, Model.DatabaseTypes type) { Model.Database database = new Model.Database(); database.ConnectionString = connectionString; database.Type = type; //得到获取MySql结构的语句 string connStr = database.ConnectionString; Match mDatabase = Regex.Match(connStr, @"Database=(?<Database>[^\;]*);"); if (mDatabase.Success) { database.Name = mDatabase.Groups["Database"].Value; //已赋数据库名 connStr = connStr.Replace(string.Format("Database={0};", database.Name), "Database=information_schema;"); } else { return(null); } dbHelper = new DBUtility.DBHelper(DBUtility.DBHelper.DatabaseTypes.MySql, connStr); GetTables(database); GetViews(database); GetStoreProcedures(database); return(database); }
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { pictureBox1.Visible = false; btnConnect.Enabled = true; if (e.Cancelled) { return; } if (e.Error != null) { MessageBox.Show("连接失败!错误:" + e.Error.Message, "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (e.Result == null) { MessageBox.Show("连接失败!", "失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } database = e.Result as Model.Database; SaveConnectionToFile(); DialogResult = DialogResult.OK; Close(); }
public Model.Database GetSchema(string connectionString, Model.DatabaseTypes type) { Model.Database database = new Model.Database(); database.ConnString = connectionString; database.Type = type; //获取数据库结构 DBUtility.DbHelper dbHelper = DBUtility.DbHelper.Create("SqlServer"); dbHelper.ConnectionString = database.ConnString; DataSet ds = dbHelper.ExecuteDataset(CommandType.Text, GetSql(database.Type, SchemaHelper.SchemaType.Table), null); List <Model.Table> tables = GetSQLTableList(ds); foreach (Model.Table table in tables) { database.AddTable(table); } ds = dbHelper.ExecuteDataset(CommandType.Text, GetSql(database.Type, SchemaHelper.SchemaType.View), null); List <Model.Table> views = GetSQLTableList(ds); foreach (Model.Table view in views) { database.AddView(view); } ds = dbHelper.ExecuteDataset(CommandType.Text, SqlForGetStoreProcedures, null); database.StoreProcedures = GetSQLStoreProcedureList(ds); return(database); }
private static void GetPageListPrivate(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 由DbDataReader得到分页泛型数据列表"); AppendFormatLine(code, 2, "/// </summary>"); AppendFormatLine(code, 2, "private List<{0}.{1}> GetPageList(DbDataReader dr, int first, int count)", style.ModelNameSpace, table.Name); AppendFormatLine(code, 2, "{"); AppendFormatLine(code, 3, "List<{0}.{1}> lst = new List<{0}.{1}>();", style.ModelNameSpace, table.Name); code.AppendLine(); AppendFormatLine(code, 3, "for (int i = 0; i < first; i++)", style.ModelNameSpace, table.Name); AppendFormatLine(code, 3, "{"); AppendFormatLine(code, 4, "if (!dr.Read())"); AppendFormatLine(code, 4, "{"); AppendFormatLine(code, 5, "return lst;"); AppendFormatLine(code, 4, "}"); AppendFormatLine(code, 3, "}"); code.AppendLine(); AppendFormatLine(code, 3, "int resultsFetched = 0;"); AppendFormatLine(code, 3, "while (resultsFetched < count && dr.Read())"); AppendFormatLine(code, 3, "{"); AppendFormatLine(code, 4, "lst.Add(GetModel(dr));"); AppendFormatLine(code, 4, "resultsFetched++;"); AppendFormatLine(code, 3, "}"); code.AppendLine(); AppendFormatLine(code, 3, "return lst;"); AppendFormatLine(code, 2, "}"); }
private static void GetList(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 获取泛型数据列表"); AppendFormatLine(code, 2, "/// </summary>"); AppendFormatLine(code, 2, "public List<{0}.{1}> GetList()", style.ModelNameSpace, table.Name); AppendFormatLine(code, 2, "{"); switch (style.CmdType) { case CommandType.StoredProcedure: AppendFormatLine(code, 3, "using (DbDataReader dr = {0}.ExecuteReader(CommandType.StoredProcedure, \"sp_{1}_GetAllList\", null))", style.DBHelperName, table.Name); break; case CommandType.Text: case CommandType.TableDirect: default: AppendFormatLine(code, 3, "StringBuilder strSql = new StringBuilder(\"SELECT * FROM {0}\");", table.Name); AppendFormatLine(code, 3, "using (DbDataReader dr = {0}.ExecuteReader(CommandType.Text, strSql.ToString(), null))", style.DBHelperName); break; } AppendFormatLine(code, 3, "{"); AppendFormatLine(code, 4, "List<{0}.{1}> lst = GetList(dr);", style.ModelNameSpace, table.Name); AppendFormatLine(code, 4, "return lst;"); AppendFormatLine(code, 3, "}"); AppendFormatLine(code, 2, "}"); }
/// <summary> /// 数据库显示在TreeView中 /// </summary> /// <param name="l"></param> /// <param name="tnMain"></param> private static void ShowDatabase(Model.Database database, TreeNode tnDatabase) { tnDatabase.Nodes.Add(new TreeNode("表", 1, 1)); tnDatabase.Nodes.Add(new TreeNode("视图", 1, 1)); tnDatabase.Nodes.Add(new TreeNode("存储过程", 1, 1)); foreach (Model.Table table in database.Tables) { TreeNode tnTable = new TreeNode(table.Name, 2, 2); tnTable.Tag = table; tnDatabase.Nodes[0].Nodes.Add(tnTable); foreach (Model.Field field in table.Fields) { TreeNode tnField = new TreeNode(field.FieldName + ":" + field.FieldType + "(" + field.FieldSize + ")", 3, 3); tnTable.Nodes.Add(tnField); } } foreach (string view in database.Views) { tnDatabase.Nodes[1].Nodes.Add(new TreeNode(view, 4, 4)); } foreach (string storeProcedure in database.StoreProcedures) { tnDatabase.Nodes[2].Nodes.Add(new TreeNode(storeProcedure, 5, 5)); } }
private static void PrepareExistCommand(Model.Database db, Model.Table table, Model.CodeStyle style, StringBuilder code) { AppendFormatLine(code, 2, "/// <summary>"); AppendFormatLine(code, 2, "/// 为查询是否存在一条数据准备参数"); AppendFormatLine(code, 2, "/// </summary>"); switch (style.CmdType) { case CommandType.StoredProcedure: AppendFormatLine(code, 2, "internal static void PrepareExistCommand({0}, out DbParameter[] cmdParms)", GetArgumentsOfFunction(table)); break; case CommandType.TableDirect: case CommandType.Text: AppendFormatLine(code, 2, "internal static void PrepareExistCommand({0}, out StringBuilder strSql, out DbParameter[] cmdParms)", GetArgumentsOfFunction(table)); break; default: break; } AppendFormatLine(code, 2, "{"); if (style.CmdType != CommandType.StoredProcedure) { AppendFormatLine(code, 3, "strSql = new StringBuilder();"); AppendFormatLine(code, 3, "strSql.Append(\"SELECT COUNT(1) FROM {0}\");", table.Name); AppendFormatLine(code, 3, "strSql.Append(\" WHERE {0}\");", GetConditonOfMySql(table)); } GetConditionParms(table, style, code); AppendFormatLine(code, 2, "}"); }
public Model.Database GetSchema(string connectionString, Model.Database.DatabaseType type) { Model.Database database = new Model.Database(); database.ConnectionString = connectionString; database.Type = type; //得到获取MySql结构的语句 string dbName; string connStr = database.ConnectionString; Match mDatabase = Regex.Match(connStr, @"Database=(?<Database>[^\;]*);"); if (mDatabase.Success) { dbName = mDatabase.Groups["Database"].Value; connStr = connStr.Replace(string.Format("Database={0};", dbName), "Database=information_schema;"); } else { return(null); } DBUtility.DBHelper dbHelper = new DBUtility.DBHelper(DBUtility.DBHelper.DatabaseTypes.MySql, connStr); // 获取表 DataSet dsTables = dbHelper.ExecuteQuery(CommandType.Text, string.Format("select distinct TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='{0}' and TABLE_TYPE='BASE TABLE'", dbName), null); foreach (DataRow rTable in dsTables.Tables[0].Rows) { Model.Table table = GetTable(dbHelper, dbName, rTable); table.Fields.Sort(); database.Tables.Add(table); } // 获取视图 DataSet dsViews = dbHelper.ExecuteQuery(CommandType.Text, string.Format("select distinct TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='{0}' and TABLE_TYPE='VIEW'", dbName), null); foreach (DataRow rView in dsViews.Tables[0].Rows) { Model.Table view = GetTable(dbHelper, dbName, rView); view.Fields.Sort(); database.Views.Add(view); } // 获取存储过程 DataSet dsStoreProcedure = dbHelper.ExecuteQuery(CommandType.Text, string.Format("select distinct SPECIFIC_NAME from ROUTINES where ROUTINE_SCHEMA='{0}'", dbName), null); foreach (DataRow r in dsStoreProcedure.Tables[0].Rows) { database.StoreProcedures.Add(r[0].ToString()); } return(database); }
public OutputCodeForm(Model.Database db) { InitializeComponent(); selectTableUserControl1.DB = db; this.db = db; this.TabText = string.Format("输出代码 {0}", db.Name); }
public FormLookup(Model.Database database) { InitializeComponent(); ucHeading1.Text = ""; BackColor = Slyce.Common.Colors.BackgroundColor; Database = database; Interfaces.Events.ShadeMainForm(); }
public void AddDatabase(string name, DatabaseTypes databaseType, ConnectionStringHelper connectionString, string[] tablePrefixes, string[] viewPrefixes, string[] storedProcedurePredixes) { Model.Table.TablePrefixes = new List<string>(tablePrefixes); Model.View.ViewPrefixes = new List<string>(viewPrefixes); Model.StoredProcedure.StoredProcedurePrefixes = new List<string>(storedProcedurePredixes); Table bllTable = new Table(databaseType, connectionString); View bllView = new View(databaseType, connectionString); StoredProcedure bllStoredProcedure = new StoredProcedure(databaseType, connectionString); Model.Database database = new Model.Database(name, connectionString, databaseType, bllTable.Tables, bllView.Views, bllStoredProcedure.StoredProcedures); AddDatabase(database); }
/// <summary> /// /// </summary> /// <param name="oldDatabase"></param> /// <param name="index"></param> /// <param name="tablePrefixes"></param> /// <param name="viewPrefixes"></param> /// <param name="storedProcedurePredixes"></param> /// <param name="processTables"></param> /// <param name="processViews"></param> /// <param name="processStoredProcedures"></param> /// <returns>Returns a description of any errors that occurred or alerts that the user needs to be aware of.</returns> public string RefreshDatabase( Model.Database oldDatabase, int index, List<string> tablePrefixes, List<string> viewPrefixes, List<string> storedProcedurePredixes, bool processTables, bool processViews, bool processStoredProcedures) { Providers.Database.Helper.Utility.ResetAllConnections(); StringBuilder sb = new StringBuilder(1000); Table bllTable = null; View bllView = null; StoredProcedure bllStoredProcedure = null; Model.Table.TablePrefixes = tablePrefixes; Model.View.ViewPrefixes = viewPrefixes; Model.StoredProcedure.StoredProcedurePrefixes = storedProcedurePredixes; Model.Table[] tables = null; Model.View[] views = null; Model.StoredProcedure[] storedProcedures = null; if (processTables) { Interfaces.Events.RaiseObjectBeingProcessedEvent("DB", "Reading tables..."); bllTable = new Table(oldDatabase.DatabaseType, oldDatabase.ConnectionString); tables = bllTable.Tables; } else { tables = oldDatabase.Tables; } if (processViews) { Interfaces.Events.RaiseObjectBeingProcessedEvent("DB", "Reading views..."); bllView = new View(oldDatabase.DatabaseType, oldDatabase.ConnectionString); views = bllView.Views; } else { views = oldDatabase.Views; } if (processStoredProcedures) { Interfaces.Events.RaiseObjectBeingProcessedEvent("DB", "Reading stored procedures..."); bllStoredProcedure = new StoredProcedure(oldDatabase.DatabaseType, oldDatabase.ConnectionString); storedProcedures = bllStoredProcedure.StoredProcedures; foreach (string error in bllStoredProcedure.ErrorMessages) { sb.AppendLine(error); } } else { storedProcedures = oldDatabase.StoredProcedures; } Model.Database newDatabase = new Model.Database(oldDatabase.Name, oldDatabase.ConnectionString, oldDatabase.DatabaseType, tables, views, storedProcedures); string errors = UpdateScriptObjects(newDatabase, oldDatabase, processTables, processViews, processStoredProcedures); if (errors.Length < 0) { sb.AppendLine(errors); } UpdateDatabase(newDatabase, index); return sb.ToString(); }
private void buttonAddDatabase_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(Interfaces.SharedData.TemplateFileName)) { MessageBox.Show("Please select a template on the Project Details screen before adding a database.", "No Template", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } FormSelectDatabase form = new FormSelectDatabase(); if (form.ShowAddDatabase(ParentForm)) { Model.Database database = new Model.Database(form.DatabaseName, form.ConnectionString, form.DatabaseType); if (ProviderInfo.TheBllDatabase == null) { ProviderInfo.TheBllDatabase = new BLL.Database(); } ProviderInfo.TheBllDatabase.AddDatabase(database); DisplayDatabaseList(); } }