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);
            }
        }
Example #2
0
        void frmDatabase_OutputCode(Model.Database db)
        {
            OutputCodeForm frm = new OutputCodeForm(db);

            frm.ShowReadmeOfTemplate += new Action <string>(ShowTemplateReadme);
            frm.Show(MainForm.dockPanel);
        }
Example #3
0
        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);
                }
            }
        }
Example #4
0
        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, "}");
        }
Example #5
0
 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();
        }
Example #7
0
        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);
        }
Example #10
0
        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));
            }
        }
Example #11
0
        void frmDatabase_OutputCode(Model.Database db)
        {
            OutputCodeForm frm = new OutputCodeForm(db);

            frm.ShowDebug += new Action <string, string, bool>(frm_ShowDebug);
            frm.Show(MainForm.dockPanel);
        }
Example #12
0
        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));
        }
Example #13
0
        /// <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);
        }
Example #14
0
 /// <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));
     }
 }
Example #15
0
        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, "}");
        }
Example #16
0
 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("请先选中一个表或视图。");
         }
     }
 }
Example #17
0
        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);
            }
        }
Example #18
0
        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, "}");
        }
Example #19
0
        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#");
        }
Example #20
0
        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);
            }
        }
Example #21
0
        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));
        }
Example #22
0
        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);
        }
Example #23
0
        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();
        }
Example #24
0
        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);
        }
Example #25
0
 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, "}");
 }
Example #26
0
        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, "}");
        }
Example #27
0
        /// <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));
            }
        }
Example #28
0
        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, "}");
        }
Example #29
0
        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);
        }
Example #30
0
        public OutputCodeForm(Model.Database db)
        {
            InitializeComponent();
            selectTableUserControl1.DB = db;

            this.db      = db;
            this.TabText = string.Format("输出代码 {0}", db.Name);
        }
Example #31
0
 public FormLookup(Model.Database database)
 {
     InitializeComponent();
     ucHeading1.Text = "";
     BackColor = Slyce.Common.Colors.BackgroundColor;
     Database = database;
     Interfaces.Events.ShadeMainForm();
 }
Example #32
0
        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);
        }
Example #33
0
        /// <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();
        }
Example #34
0
        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();
            }
        }