⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frminitdata.cs

📁 自己编写的基本Orcale的通用的数据库初始化工具。
💻 CS
📖 第 1 页 / 共 3 页
字号:
                this.dgInitializeInfo.DataBind();

                this.txtScriptFileName.Text = openFileDialog1.FileName;
            }  
           
        }

        private void Btn_Excut_Click(object sender, System.EventArgs e)
        {
            try
            {
                ShowProgress("初始化数据库!",true);
	            bool flag =false;
                string str = string.Empty;
                foreach(DS.Win.UltraWinGrid.UltraGridRow row in this.dgInitializeInfo.Rows)
                {				
                    if((Boolean)row.Cells["Select"].Value == true)
                    {
                        SQLPlusScript sQLPlusScript = new SQLPlusScript();
                        string currAppPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;;
                        currAppPath += ".\\Resources\\Script\\" + row.Cells["FileName"].Value.ToString().Trim();
                        str += sQLPlusScript.Execute(@currAppPath);
                        flag =true;
                    }
                }
                
                if(flag == true)
                {
                    this.SetFinish();
                    //写日志
                    DataTable dtlog = new DataTable("InitData");
                    dtlog.Columns.Add("Version");
                    dtlog.Columns.Add("ReleaseDate");
                    dtlog.Columns.Add("Comment"); 

                    DataRow dr1 = dtlog.NewRow();
                    dr1["Version"] = "1.0.0.1";
                    dr1["ReleaseDate"] = System.DateTime.Now;
                    dr1["Comment"] = str;
                    dtlog.Rows.Add(dr1);
                    writelog(dtlog);
            
                    //更新日志显示,更新txtLog中的内容
                    DataTable dtlogr = readlog();
                    foreach(DataRow dr in dtlogr.Rows)
                    {
                        this.txtLog.Text = "";
                        this.txtLog.Text += "版本号:"+dr["Version"].ToString()+"\r\n";
                        this.txtLog.Text += "发布时间:"+dr["ReleaseDate"].ToString()+"\r\n";
                        this.txtLog.Text += "版本说明:"+dr["Comment"].ToString()+"\r\n";
                    }
                }
            }
            catch(Exception em)
            {
                MessageBox.Show(em.ToString(),"异常",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }  
            ShowProgress("",false);	
        }

        //执行回滚脚本,把所有的初始化表全部清空
        private void Btn_Rollback_Click(object sender, System.EventArgs e)
        {
            try
            {
                SQLPlusScript sQLPlusScript = new SQLPlusScript();
                string currAppPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;;
                currAppPath += ".\\Resources\\Script\\"+"EMIS_InitData_RollBack.sql";
                sQLPlusScript.Execute(@currAppPath);
                
                //修改日志信息
                DataTable dtlog = new DataTable("InitData");
                dtlog.Columns.Add("Version");
                dtlog.Columns.Add("ReleaseDate");
                dtlog.Columns.Add("Comment"); 

                DataRow dr1 = dtlog.NewRow();
                dr1["Version"] = null;
                dr1["ReleaseDate"] = null;
                dr1["Comment"] = "";
                dtlog.Rows.Add(dr1);
                writelog(dtlog);
            
                //更新日志显示,更新txtLog中的内容
                DataTable dtlogr = readlog();
                this.txtLog.Text = "";    
                this.SetUnFinish();
            }
            catch(Exception em)
            {
                MessageBox.Show(em.ToString(),"异常",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }                       
        }


		private void FrmSetConfig_OnEvent(string fileName)
		{
			if(fileName.ToUpper() == "INITDATALOG.XML")
			{
				OptimizeManager optimizeManager = new OptimizeManager();
				optimizeManager.OptScriptField = "InitDataScript";
				optimizeManager.OptConfig = "InitDataConfig.xml";
				this.dgInitializeInfo.DataSource = optimizeManager.GetOptimizeDt(optimizeManager.OptConfig);
				this.dgInitializeInfo.DataBind();
			}
		}
        /// <summary>
        /// 设置为完成状态
        /// </summary>
        private void SetFinish()
        {
            this.Btn_Excut.Enabled = false;
            this.brn_OpenFile.Enabled = false;
            this.Btn_Rollback.Enabled = true;
            this.Btn_Finish.Enabled = true;
        }

        /// <summary>
        /// 设置为未完成状态
        /// </summary>
        private void SetUnFinish()
        {
            this.Btn_Excut.Enabled = true;
            this.brn_OpenFile.Enabled = true;
            this.Btn_Rollback.Enabled = false;
            this.Btn_Finish.Enabled = false;
        }

        /// <summary>
        /// 打开窗体事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmInitData_Load(object sender, System.EventArgs e)
        {
           
            //读取日志文件
            DataTable dtlog = readlog();    
            string currAppPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;;
            currAppPath += @"\SysData\"+"InitDatalog.XML";
            //根据日志信息,判断当前状态,是已经执行完成,还是未完成,设置按钮可用属性,写入txtLog
            foreach(DataRow dr in dtlog.Rows)
            {
                if(dr["Version"].ToString()!="")
                {
                    this.txtLog.Text += "版本号:"+dr["Version"].ToString()+"\r\n";
                    this.txtLog.Text += "发布时间:"+dr["ReleaseDate"].ToString()+"\r\n";
                    this.txtLog.Text += "版本说明:"+dr["Comment"].ToString()+"\r\n";
                    this.SetFinish();
                }
                else
                {
                    this.txtLog.Text = "";
                    this.SetUnFinish();
                }
            }
            

            //读取默认文件,初始化表格dgInitializeInfo
            string strLine  = GlobalObject.Instance.LocalSession.ReadSQLScript(@currAppPath);
//
//            DataTable dt = new DataTable();
//            dt.Columns.Add("filename");
//            dt.Columns.Add("length");
//            dt.Columns.Add("isinitialized");    
//
//            DataRow dr1 = dt.NewRow();
//            
//            
//            dr1["filename"] = @currAppPath;
//            dr1["length"] = strLine.Length.ToString();
//            dr1["isinitialized"] = "NO";
//            dt.Rows.Add(dr1);

            OptimizeManager optimizeManager = new OptimizeManager();
            optimizeManager.OptScriptField = "InitDataScript";
            optimizeManager.OptConfig = "InitDataConfig.xml";
            this.dgInitializeInfo.DataSource = optimizeManager.GetOptimizeDt(optimizeManager.OptConfig);
            this.dgInitializeInfo.DataBind();

            currAppPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;;
            currAppPath += @"\Resources\Script\"+"EMIS_InitData.sql";
            this.txtScriptFileName.Text = currAppPath;

			
        }

        private void Btn_Finish_Click(object sender, System.EventArgs e)
        {
            //更改状态配置文件
            GlobalObject.Instance.LocalSession.UpdateConfig("DBTask.config","TASK","TaskState","1",3);
            //执行完成,向主界面发送信息
            GlobalObject.Instance.LocalSession.SendMessage("InitDBTask","FrmInitData","TaskStepState",TaskStepState.Done);            
        }

        /// <summary>
        /// 读取日志信息
        /// </summary>
        /// <returns>数据表</returns>
        private DataTable readlog()
        {
            string currAppPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;;
            currAppPath += ".\\Resources\\Log\\"+"InitDatalog.xml";
            return GlobalObject.Instance.LocalSession.ReadDataFromDataFile("InitDatalog.xml").Tables["InitData"];
        }

        /// <summary>
        /// 写日志信息
        /// </summary>
        private void writelog(DataTable dtlog)
        {
            DataSet ds = new DataSet();
            ds.Tables.Add(dtlog);
            string currAppPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;;
            currAppPath += ".\\Resources\\Log\\"+"InitDatalog.xml";
            GlobalObject.Instance.LocalSession.WriteDataToDataFile("InitDatalog.xml",ds);
        }

        private void dgInitializeInfo_InitializeLayout(object sender, DS.Win.UltraWinGrid.InitializeLayoutEventArgs e)
        {
        
        }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -