コード例 #1
0
ファイル: Main.cs プロジェクト: yuanrui/Examples
        public void Init()
        {
            dgvColumns.AutoGenerateColumns = false;
            lstTable.SelectedIndexChanged += new EventHandler(lstTable_SelectedIndexChanged);
            string connStr = GetConnStr();

            BindDatabaseData(connStr);
            Closing += new CancelEventHandler(Main_Closing);


            CodeEntityParameter entParam = CodeEntityParameter.Get();

            rbtnAddPrefix.Checked    = entParam.IsAddOrRemovePrefix;
            rbtnRemovePrefix.Checked = !entParam.IsAddOrRemovePrefix;
            rbtnAddPrefix.Checked    = entParam.IsAddOrRemovePrefix;
            chkSuffix.Checked        = entParam.IsAddSuffix;
            txtNameSpace.Text        = entParam.NameSpace;
            txtPrefix.Text           = entParam.Prefix;
            txtSuffix.Text           = entParam.Suffix;
            txtSuffix.Enabled        = entParam.IsAddSuffix;
            txtSavePath.Text         = entParam.SavePath;
            txtServer.Text           = entParam.Server;
            txtUser.Text             = entParam.UserId;
            txtPwd.Text         = entParam.UserPwd;
            rbtnMSSQL.Checked   = !entParam.IntegratedSecurity;
            rbtnWindows.Checked = entParam.IntegratedSecurity;

            cboDatabase.Text = entParam.DataBaseName ?? cboDatabase.Text;
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: yuanrui/Examples
        private void btnGenerateCode_Click(object sender, EventArgs e)
        {
            Table table = new Table();

            if (cboDatabase.SelectedValue == null)
            {
                MessageBox.Show("数据库未选择,未连接数据库?");
                return;
            }
            string dbName = cboDatabase.SelectedValue.ToString();
            CodeEntityDataReader entDataReader = new CodeEntityDataReader(GetConnStr(dbName));

            table = lstTable.SelectedItem as Table;
            if (table == null)
            {
                MessageBox.Show("未选择要生成的数据表");
                return;
            }
            string       tableName = table.Name;
            List <Table> tableList = entDataReader.GetTables().ToList();

            table = tableList.FirstOrDefault(m => m.Name == tableName);
            entDataReader.GetColumns(table);

            CodeEntityParameter entParam = GetEntityParameter();

            CodeGenerator.Core.CodeGenerator code = new CodeGenerator.Core.CodeGenerator();
            code.CreateCodeFile(table, entParam);

            MessageBox.Show("生成成功!");
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: yuanrui/Examples
        private void btnGenerateAllCode_Click(object sender, EventArgs e)
        {
            if (cboDatabase.SelectedValue == null)
            {
                MessageBox.Show("数据库未选择,未连接数据库?");
                return;
            }

            string dbName = cboDatabase.SelectedValue.ToString();

            CodeEntityParameter entParam = GetEntityParameter();

            worker.RunWorkerAsync(entParam);
        }
コード例 #4
0
ファイル: Main.cs プロジェクト: yuanrui/Examples
        private CodeEntityParameter GetEntityParameter()
        {
            CodeEntityParameter entParam = new CodeEntityParameter();

            entParam.IsAddOrRemovePrefix = rbtnAddPrefix.Checked;
            entParam.IsAddOrRemovePrefix = !rbtnRemovePrefix.Checked;
            entParam.IsAddSuffix         = chkSuffix.Checked;
            entParam.NameSpace           = txtNameSpace.Text;
            entParam.Prefix             = txtPrefix.Text;
            entParam.Suffix             = txtSuffix.Text;
            entParam.SavePath           = txtSavePath.Text;
            entParam.Server             = txtServer.Text;
            entParam.UserId             = txtUser.Text;
            entParam.UserPwd            = txtPwd.Text;
            entParam.IntegratedSecurity = rbtnWindows.Checked;
            entParam.DataBaseName       = cboDatabase.Text;
            return(entParam);
        }
コード例 #5
0
ファイル: Main.cs プロジェクト: yuanrui/Examples
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            if (worker != null && worker.CancellationPending != true)
            {
                CodeEntityParameter entParam = e.Argument as CodeEntityParameter;

                CodeGenerator.Core.CodeGenerator code = new CodeGenerator.Core.CodeGenerator();

                CodeEntityDataReader entDataReader = new CodeEntityDataReader(GetConnStr(entParam.DataBaseName));

                List <Table> list = new List <Table>();
                foreach (var table in lstTable.Items)
                {
                    list.Add(table as Table);
                }
                StartProgressDelegate startProgress = new StartProgressDelegate(StartProgress);
                //progressBar.Invoke(startProgress, new object[] { list.Count, 0, 1, 0 });

                action3 = StartProgress;
                progressBar.Invoke(action3, new object[] { list.Count, 0, 1, 0 });

                #region 用PLinq方式执行生成操作

                //var pList = list.AsParallel<Table>();
                //pList.ForAll((t) => {
                //    entDataReader.ColumnList(t as Table);
                //    code.CreateCodeFile(t as Table, entParam);

                //    ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
                //    progressBar.Invoke(showProgress);

                //    ShowLabelDelegate showLable = new ShowLabelDelegate(ShowLabel);
                //    lblMsg.Invoke(showLable, string.Format("正在处理数据表:{0}", t.Name));
                //});

                #endregion

                #region  统方式foreach执行生成操作

                //foreach (var table in list)
                //{
                //    entDataReader.ColumnList(table as Table);
                //    code.CreateCodeFile(table as Table, entParam);

                //    ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
                //    progressBar.Invoke(showProgress);
                //}

                #endregion

                #region Parallel并行执行生成操作

                Parallel.ForEach(list, (t) => {
                    entDataReader.GetColumns(t as Table);
                    code.CreateCodeFile(t as Table, entParam);

                    #region 委托方式使用1

                    //ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
                    //progressBar.Invoke(showProgress);

                    //ShowLabelDelegate showLable = new ShowLabelDelegate(ShowLabel);
                    //lblMsg.Invoke(showLable, string.Format("正在处理数据表:{0}", t.Name));

                    #endregion

                    #region 委托方式使用2

                    action1 = ShowProgress;
                    progressBar.Invoke(action1);

                    action2 = ShowLabel;
                    lblMsg.Invoke(action2, string.Format("正在处理数据表:{0}", t.Name));

                    #endregion
                });

                #endregion
            }
        }
コード例 #6
0
ファイル: Main.cs プロジェクト: yuanrui/Examples
        void Main_Closing(object sender, CancelEventArgs e)
        {
            CodeEntityParameter entityParam = GetEntityParameter();

            entityParam.Save();
        }