private void dgvData_CellClick(object sender, DataGridViewCellEventArgs e) //单击单元格的任意部分
        {
            int index = this.dgvData.CurrentCell.RowIndex;                         //获取当前鼠标单击时的行索引号

            if (index >= 0)
            {
                this.txtAchievementName.Text = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[0].Value.ToString().Trim());
                if (txtAchievementName.Text != string.Empty)//点中了非最后一行的空白行
                {
                    this.cboSoftware.Text      = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[6].Value.ToString().Trim());
                    this.txtSaveDirectory.Text = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[7].Value.ToString().Trim());
                    this.txtPartNum.Text       = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[8].Value.ToString().Trim());
                    this.txtAssemblyNum.Text   = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[9].Value.ToString().Trim());
                    this.txtDrawingNum.Text    = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[10].Value.ToString().Trim());
                    btnUpdate.Enabled          = true;//更新机械图信息按钮可点击
                }
                else//点中了最后一行的空白行
                {
                    this.cboSoftware.SelectedIndex = 7;//选中默认值"(Unknown)"
                    this.txtSaveDirectory.Text     = string.Empty;
                    this.txtPartNum.Text           = "0";
                    this.txtAssemblyNum.Text       = "0";
                    this.txtDrawingNum.Text        = "0";
                    btnUpdate.Enabled = false;//更新机械图信息按钮不可点击
                }
            }
        }
Beispiel #2
0
        private void btnUpdate_Click(object sender, EventArgs e) //更新
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            if (this.txtAchievementName.Text.ToString().Trim() == string.Empty || this.txtAchievementType.Text.ToString().Trim() == string.Empty || this.dtpAchievementDate.Text.ToString().Trim() == string.Empty || this.txtAchievementAuthor.Text.ToString().Trim() == string.Empty || this.txtAchievementCompany.Text.ToString().Trim() == string.Empty || this.txtAchievementMoney.Text.ToString().Trim() == string.Empty)//是否所有数据均未改动检测
            {
                MessageBox.Show("信息输入不完整,请重新检查之后再重试!", "提示");
                return;
            }
            try//对成果时间和成果支撑基金的数据格式进行检测(如数据有误会throw异常,程序进入catch捕捉代码中)
            {
                Convert.ToDateTime(MyDatabase.CharFilter(this.dtpAchievementDate.Text.ToString().Trim()));
                Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim()));
            }
            catch (Exception ex)
            {
                MessageBox.Show("信息输入格式有误,请重新检查之后再重试!", "提示");
                //throw new Exception(ex.Message);
                return;
            }
            //所有数据的合法性均检测完毕
            string sql_1 = string.Format("update datainfo set AchievementName='{0}', AchievementType='{1}', AchievementDate='{2}', AchievementAuthor='{3}', AchievementCompany='{4}', AchievementMoney={5} where AchievementName='{6}';", MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim()), MyDatabase.CharFilter(this.txtAchievementType.Text.ToString().Trim()), Convert.ToDateTime(MyDatabase.CharFilter(this.dtpAchievementDate.Text.ToString().Trim())), MyDatabase.CharFilter(this.txtAchievementAuthor.Text.ToString().Trim()), MyDatabase.CharFilter(this.txtAchievementCompany.Text.ToString().Trim()), Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim())), txt_achievement_name); //sql语句

            if (MyDatabase.UpdateDataBySql(sql_1))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     //更新成功
            {
                //更新DataGridView控件内的内容
                txt_achievement_name = MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim());
                string    sql_2 = string.Format("select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementName='{0}';", txt_achievement_name);
                DataTable dt    = MyDatabase.GetDataTableBySql(sql_2);
                if (dt == null)//数据库连接失败
                {
                    MessageBox.Show("数据库连接失败!", "提示");
                    return;
                }
                this.dgvData.DataSource = null; //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                this.dgvData.DataSource = dt;   //DataGridView控件显示数据
                MessageBox.Show("更新成功!", "提示");
            }
            else//更新失败
            {
                MessageBox.Show("更新失败!", "提示");
            }
        }
Beispiel #3
0
        private string txt_achievement_name = string.Empty;                //存储数据库内的主键的值,用于更新记录和删除记录

        private void frmAchievementUpdate_Load(object sender, EventArgs e) //窗体载入时初始化
        {
            btnOutToFile.Enabled            = true;                        //导出此项结果到文件按钮可点击
            btnOutToFile.Text               = "导出此项结果到文件";                 //导出此项结果到文件按钮显示内容
            this.dgvData.AllowUserToAddRows = false;                       //不允许用户添加新行
            if (MyDatabase.TestMyDatabaseConnect() == false)               //数据库连接失败
            {
                btnOutToFile.Enabled = false;                              //导出此项结果到文件按钮不可点击
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            try
            {
                string    sql = string.Format("select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementName='{0}';", txt_achievement_name);
                DataTable dt  = MyDatabase.GetDataTableBySql(sql);
                if (dt == null)                            //数据库连接失败
                {
                    btnOutToFile.Enabled    = false;       //导出此项结果到文件按钮不可点击
                    btnOutToFile.Text       = "导出此项结果到文件"; //导出此项结果到文件按钮显示内容
                    this.dgvData.DataSource = null;        //DataGridView控件显示数据
                    MessageBox.Show("数据库连接失败!", "提示");
                    return;
                }
                this.dgvData.DataSource    = null; //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                this.dgvData.DataSource    = dt;   //DataGridView控件显示数据
                txtAchievementName.Text    = txt_achievement_name;
                txtAchievementType.Text    = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[1].Value.ToString().Trim());
                dtpAchievementDate.Text    = this.dgvData.Rows[0].Cells[2].Value.ToString().Trim();
                txtAchievementAuthor.Text  = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[3].Value.ToString().Trim());
                txtAchievementCompany.Text = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[4].Value.ToString().Trim());
                txtAchievementMoney.Text   = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[5].Value.ToString().Trim());
                return;
            }
            catch (Exception ex)
            {
                btnOutToFile.Enabled    = false;       //导出此项结果到文件按钮不可点击
                btnOutToFile.Text       = "导出此项结果到文件"; //导出此项结果到文件按钮显示内容
                this.dgvData.DataSource = null;        //DataGridView控件显示数据
                MessageBox.Show("更新界面初始化失败!", "提示");
                return;
            }
        }
Beispiel #4
0
        private void dgvData_CellClick(object sender, DataGridViewCellEventArgs e) //单击单元格的任意部分
        {
            int index = this.dgvData.CurrentCell.RowIndex;                         //获取当前鼠标单击时的行索引号

            if (index >= 0)
            {
                this.txt_achievement_name = MyDatabase.CharFilter(this.dgvData.Rows[index].Cells[0].Value.ToString().Trim());
                if (txt_achievement_name != string.Empty)
                {
                    btnUpdate.Enabled    = true;         //更新此项成果按钮可点击
                    btnDelete.Enabled    = true;         //删除此项成果按钮可点击
                    btnOutToFile.Text    = "导出此检索结果到文件"; //导出此检索结果到文件按钮显示内容
                    btnOutToFile.Enabled = true;         //导出此检索结果到文件按钮可点击
                }
                else
                {
                    btnUpdate.Enabled    = false;        //更新此项成果按钮不可点击
                    btnDelete.Enabled    = false;        //删除此项成果按钮不可点击
                    btnOutToFile.Text    = "导出此检索结果到文件"; //导出此检索结果到文件按钮显示内容
                    btnOutToFile.Enabled = false;        //导出此检索结果到文件按钮不可点击
                }
            }
        }
 private void btnSearch_Click(object sender, EventArgs e) //检索
 {
     if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
     {
         MessageBox.Show("数据库连接失败!", "提示");
         return;
     }
     try//防止将所有成果类型均删除后,成果类型为空时检索,会导致未引用的异常
     {
         if (this.cboAchievementType.SelectedItem.ToString() == string.Empty)
         {
             MessageBox.Show("成果类型选择有误", "提示");
             return;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("无任何待检索成果类型,检索失败!", "提示");
         return;
     }
     try
     {
         string    sql = string.Format("select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementType='{0}';", MyDatabase.CharFilter(this.cboAchievementType.SelectedItem.ToString().Trim()));
         DataTable dt  = MyDatabase.GetDataTableBySql(sql);
         if (dt == null)                             //数据库连接失败
         {
             btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
             btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
             btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
             btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
             txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
             txt_achievement_type    = string.Empty;
             this.dgvData.DataSource = null;         //DataGridView控件显示数据
             MessageBox.Show("数据库连接失败!", "提示");
             return;
         }
         if (dt.Rows.Count == 0)                     //未检索到符合要求的成果信息
         {
             btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
             btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
             btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
             btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
             txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
             txt_achievement_type    = string.Empty;
             this.dgvData.DataSource = null;         //DataGridView控件显示数据
             MessageBox.Show("未检索到符合要求的成果信息!", "提示");
             return;
         }
         btnDelete.Enabled         = true;         //删除此项成果按钮可点击
         btnUpdate.Enabled         = true;         //更新此项成果按钮可点击
         btnOutToFile.Text         = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
         btnOutToFile.Enabled      = true;         //导出此检索成果到文件按钮可点击
         this.dgvData.DataSource   = null;         //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
         this.dgvData.DataSource   = dt;           //DataGridView控件显示数据
         this.txt_achievement_name = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[0].Value.ToString().Trim());
         this.txt_achievement_type = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[1].Value.ToString().Trim());
         MessageBox.Show("检索成功!", "提示");
         return;
     }
     catch (Exception ex)
     {
         btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
         btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
         btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
         btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
         txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
         txt_achievement_type    = string.Empty;
         this.dgvData.DataSource = null;         //DataGridView控件显示数据
         MessageBox.Show("检索失败!", "提示");
         return;
     }
 }
        private void btnDelete_Click(object sender, EventArgs e) //删除此项成果
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            DialogResult result = MessageBox.Show("是否确定删除此项成果?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (result == DialogResult.OK)//确定
            {
                if (txt_achievement_name != string.Empty)
                {
                    string sql_1 = string.Format("delete from datainfo where datainfo.AchievementName='{0}';", txt_achievement_name); //sql语句
                    if (MyDatabase.UpdateDataBySql(sql_1))                                                                            //删除成功
                    {
                        //更新删除后DataGridView控件内的数据
                        try
                        {
                            string    sql_2 = string.Format("select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementType='{0}';", txt_achievement_type);
                            DataTable dt_2  = MyDatabase.GetDataTableBySql(sql_2);
                            if (dt_2.Rows.Count == 0)                   //删除此条成果后数据库中已无此成果类型的成果
                            {
                                btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                                btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                                btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                                btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                                txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                                txt_achievement_type    = string.Empty;
                                this.dgvData.DataSource = null;         //DataGridView控件显示数据

                                #region 成果类型组合框更新
                                if (MyDatabase.TestMyDatabaseConnect() == false)//数据库连接失败
                                {
                                    MessageBox.Show("数据库连接失败!", "提示");
                                    return;
                                }
                                try
                                {
                                    this.cboAchievementType.Items.Clear();      //清空combox内所有选项
                                    DataTable dt_3 = MyDatabase.GetDataTableBySql("select distinct AchievementType from datainfo;");
                                    if (dt_3.Rows.Count == 0)                   //删除此条成果后数据库中已无其他成果类型
                                    {
                                        btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                                        btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                                        btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                                        btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                                        txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                                        txt_achievement_type    = string.Empty;
                                        this.dgvData.DataSource = null;         //DataGridView控件显示数据
                                        MessageBox.Show("删除成功!", "提示");
                                        return;
                                    }
                                    for (int i = 0; i < dt_3.Rows.Count; i++)
                                    {
                                        this.cboAchievementType.Items.Add(MyDatabase.CharFilter(dt_3.Rows[i][0].ToString().Trim()));
                                    }
                                    this.cboAchievementType.SelectedIndex = 0;
                                }
                                catch (Exception ex)//数据库可能连接不上,MyDatabase.GetDataSetBySql函数会出错,返回的DataSet值为null,导致下面引用DataSet具体值时会抛出异常(后经改进在DataSet具体值使用之前加入了值是否为null的判断,后又经过改进在每次事件处理前均加入了检测能否成功连接的函数)
                                {
                                    MessageBox.Show(ex.Message);
                                }
                                #endregion
                                MessageBox.Show("删除成功!", "提示");
                                return;
                            }
                            btnDelete.Enabled       = true;         //删除此项成果按钮可点击
                            btnUpdate.Enabled       = true;         //更新此项成果按钮可点击
                            btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                            btnOutToFile.Enabled    = true;         //导出此检索成果到文件按钮可点击
                            this.dgvData.DataSource = null;         //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                            this.dgvData.DataSource = dt_2;         //DataGridView控件显示数据
                            txt_achievement_name    = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[0].Value.ToString().Trim());
                            txt_achievement_type    = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[1].Value.ToString().Trim());
                            MessageBox.Show("删除成功!", "提示");
                            return;
                        }
                        catch (Exception ex)
                        {
                            btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                            btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                            btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                            btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                            txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                            txt_achievement_type    = string.Empty;
                            this.dgvData.DataSource = null;         //DataGridView控件显示数据
                            MessageBox.Show("删除失败!", "提示");
                            return;
                        }
                    }
                }
                MessageBox.Show("删除失败!", "提示");
                return;
            }
            else//取消
            {
                return;
            }
        }
        private void btnUpdate_Click(object sender, EventArgs e) //更新此项成果
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            frmAchievementUpdate achievement_update = new frmAchievementUpdate(txt_achievement_name); //实例化成果更新窗体

            achievement_update.ShowDialog();                                                          //成果更新窗体以模式对话框的方式打开
            #region 成果类型组合框更新
            if (MyDatabase.TestMyDatabaseConnect() == false)                                          //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            try
            {
                this.cboAchievementType.Items.Clear();      //清空combox内所有选项
                DataTable dt_1 = MyDatabase.GetDataTableBySql("select distinct AchievementType from datainfo;");
                if (dt_1.Rows.Count == 0)                   //数据库中已无任何成果类型
                {
                    btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                    btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                    btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                    btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                    txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                    txt_achievement_type    = string.Empty;
                    this.dgvData.DataSource = null;         //DataGridView控件显示数据
                    return;
                }
                for (int i = 0; i < dt_1.Rows.Count; i++)
                {
                    this.cboAchievementType.Items.Add(MyDatabase.CharFilter(dt_1.Rows[i][0].ToString().Trim()));
                }
                bool checkresult = false;
                for (int i = 0; i < this.cboAchievementType.Items.Count; i++)
                {
                    if (string.Compare(cboAchievementType.GetItemText(cboAchievementType.Items[i]), txt_achievement_type) == 0)//成果类型combox中还有之前的成果类型
                    {
                        this.cboAchievementType.SelectedIndex = i;
                        checkresult = true;
                        break;
                    }
                }
                if (checkresult == false)//成果类型combox中已无之前的成果类型
                {
                    this.cboAchievementType.SelectedIndex = 0;
                    btnDelete.Enabled    = false;        //删除此项成果按钮不可点击
                    btnUpdate.Enabled    = false;        //更新此项成果按钮不可点击
                    btnOutToFile.Text    = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                    btnOutToFile.Enabled = false;        //导出此检索成果到文件按钮不可点击
                    txt_achievement_name = string.Empty; //记录数据库内主键的值为空
                    txt_achievement_type = string.Empty;
                    dgvData.DataSource   = null;
                    return;
                }
            }
            catch (Exception ex)//数据库可能连接不上,MyDatabase.GetDataSetBySql函数会出错,返回的DataSet值为null,导致下面引用DataSet具体值时会抛出异常(后经改进在DataSet具体值使用之前加入了值是否为null的判断,后又经过改进在每次事件处理前均加入了检测能否成功连接的函数)
            {
                MessageBox.Show(ex.Message);
            }
            #endregion

            #region DataGridView控件内容更新
            try
            {
                string    sql_2 = string.Format("select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementType='{0}';", txt_achievement_type);
                DataTable dt_2  = MyDatabase.GetDataTableBySql(sql_2);
                this.dgvData.DataSource = dt_2;//DataGridView控件显示数据
                txt_achievement_name    = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[0].Value.ToString().Trim());
                txt_achievement_type    = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[1].Value.ToString().Trim());
                return;
            }
            catch (Exception ex)
            {
                MessageBox.Show("数据更新出错!");
                return;
            }
            #endregion
        }
 private void btnUpdate_Click(object sender, EventArgs e) //更新机械图信息
 {
     if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
     {
         MessageBox.Show("数据库连接失败!", "提示");
         return;
     }
     try
     {
         if (txtSaveDirectory.Text == string.Empty)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  //判断成果保存目录是否为空
         {
             txtSaveDirectory.Text = "(Null)";                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       //成果保存目录如果为空,则置其值为(Null)(数据库中默认值)
         }
         string sql_1 = string.Format("update mechanicaldrawing set mechanicaldrawing.AchievementName='{0}', mechanicaldrawing.Software='{1}', mechanicaldrawing.SaveDirectory='{2}', mechanicaldrawing.PartNum={3}, mechanicaldrawing.AssemblyNum={4}, mechanicaldrawing.DrawingNum={5} where mechanicaldrawing.AchievementName='{6}';", MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim()), MyDatabase.CharFilter(this.cboSoftware.Text.ToString().Trim()), MyDatabase.CharFilter(this.txtSaveDirectory.Text.ToString().Trim()), Convert.ToInt32(MyDatabase.CharFilter(this.txtPartNum.Text.ToString().Trim())), Convert.ToInt32(MyDatabase.CharFilter(this.txtAssemblyNum.Text.ToString().Trim())), Convert.ToInt32(MyDatabase.CharFilter(this.txtDrawingNum.Text.ToString().Trim())), MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim())); //sql语句
         if (MyDatabase.UpdateDataBySql(sql_1))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      //更新成功
         {
             //更新DataGridView控件内的内容
             string    sql_2 = "select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金', mechanicaldrawing.Software as '所用软件', mechanicaldrawing.SaveDirectory as '成果保存目录', mechanicaldrawing.PartNum as '零件图个数', mechanicaldrawing.AssemblyNum as '装配图个数', mechanicaldrawing.DrawingNum as '工程图纸个数' from datainfo join mechanicaldrawing on datainfo.AchievementName=mechanicaldrawing.AchievementName;";
             DataTable dt_2  = MyDatabase.GetDataTableBySql(sql_2);
             this.dgvData.DataSource = dt_2;         //机械图信息显示DataGridView控件显示数据
             btnUpdate.Enabled       = true;         //更新机械图信息按钮可点击
             btnOutToFile.Text       = "导出此视图内容到文件"; //设置导出此视图内容到文件按钮显示内容
             btnOutToFile.Enabled    = true;         //设置导出此视图内容到文件按钮可点击
             MessageBox.Show("更新成功!", "提示");
             return;
         }
         else//更新失败
         {
             MessageBox.Show("更新失败!", "提示");
             return;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("更新失败!", "提示");
         return;
     }
 }
        private void frmMechanicalDrawing_Load(object sender, EventArgs e) //窗体载入时初始化
        {
            txtAchievementName.Text         = string.Empty;                //成果名称显示内容
            txtSaveDirectory.Text           = string.Empty;                //成果保存目录显示内容
            txtPartNum.Text                 = "0";                         //零件图个数显示内容
            txtAssemblyNum.Text             = "0";                         //装配图个数显示内容
            txtDrawingNum.Text              = "0";                         //工程图纸个数显示内容
            this.dgvData.DataSource         = null;                        //机械图信息显示DataGridView控件显示数据
            this.dgvData.AllowUserToAddRows = false;                       //不允许用户添加新行
            btnCount.Text        = "开始统计个数信息";                             //设置开始统计个数信息按钮显示内容
            btnCount.Enabled     = true;                                   //开始统计个数信息按钮可点击
            btnOutToFile.Text    = "导出此视图内容到文件";                           //设置导出此视图内容到文件按钮显示内容
            btnOutToFile.Enabled = false;                                  //设置导出此视图内容到文件按钮不可点击
            btnUpdate.Enabled    = false;                                  //更新机械图信息按钮不可点击

            #region 所用软件组合框初始化
            this.cboSoftware.Items.Clear();//清空combox内所有选项
            this.cboSoftware.Items.Add("CAD");
            this.cboSoftware.Items.Add("UG");
            this.cboSoftware.Items.Add("Solidworks");
            this.cboSoftware.Items.Add("Inventor");
            this.cboSoftware.Items.Add("ProE");
            this.cboSoftware.Items.Add("Catia");
            this.cboSoftware.Items.Add("(其他)");
            this.cboSoftware.Items.Add("(Unknown)"); //所用软件未知,数据库内该字段的默认值
            this.cboSoftware.SelectedIndex = 7;      //选中默认值"(Unknown)"
            #endregion

            if (MyDatabase.TestMyDatabaseConnect() == false)//数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }

            try
            {
                string    sql_1 = "select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementType='机械图';";
                DataTable dt_1  = MyDatabase.GetDataTableBySql(sql_1);
                if (dt_1.Rows.Count == 0)                   //未检索到任何机械图成果
                {
                    this.dgvData.DataSource = null;         //机械图信息显示DataGridView控件显示数据
                    btnUpdate.Enabled       = false;        //更新机械图信息按钮不可点击
                    btnOutToFile.Text       = "导出此视图内容到文件"; //设置导出此视图内容到文件按钮显示内容
                    btnOutToFile.Enabled    = false;        //设置导出此视图内容到文件按钮不可点击
                    MessageBox.Show("目前未有任何机械图成果,请先添加机械图成果!", "提示");
                    return;
                }
                for (int i = 0; i < dt_1.Rows.Count; i++)//对所有在mechanicaldrawing表中没有的机械图成果自动添加所有值为默认值的记录
                {
                    string    sql_2 = string.Format("select mechanicaldrawing.AchievementName as '成果名称', mechanicaldrawing.SaveDirectory as '成果保存目录', mechanicaldrawing.PartNum as '零件图个数', mechanicaldrawing.AssemblyNum as '装配图个数', mechanicaldrawing.DrawingNum as '工程图纸个数' from mechanicaldrawing where mechanicaldrawing.AchievementName='{0}';", MyDatabase.CharFilter(dt_1.Rows[i][0].ToString().Trim()));
                    DataTable dt_2  = MyDatabase.GetDataTableBySql(sql_2);
                    if (dt_2.Rows.Count == 0)//此机械图成果在mechanicaldrawing表无记录,添加所有值为默认值的记录
                    {
                        string sql_3 = string.Format("insert into mechanicaldrawing values('{0}', '(Unknown)', '(Null)', 0, 0, 0);", MyDatabase.CharFilter(dt_1.Rows[i][0].ToString().Trim()));
                        if (MyDatabase.UpdateDataBySql(sql_3) == false) //添加失败
                        {
                            this.dgvData.DataSource = null;             //机械图信息显示DataGridView控件显示数据
                            btnUpdate.Enabled       = false;            //更新机械图信息按钮不可点击
                            btnOutToFile.Text       = "导出此视图内容到文件";     //设置导出此视图内容到文件按钮显示内容
                            btnOutToFile.Enabled    = false;            //设置导出此视图内容到文件按钮不可点击
                            MessageBox.Show("获取数据初始化时失败!", "提示");
                            return;
                        }
                    }
                }
                string    sql_4 = "select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金', mechanicaldrawing.Software as '所用软件', mechanicaldrawing.SaveDirectory as '成果保存目录', mechanicaldrawing.PartNum as '零件图个数', mechanicaldrawing.AssemblyNum as '装配图个数', mechanicaldrawing.DrawingNum as '工程图纸个数' from datainfo join mechanicaldrawing on datainfo.AchievementName=mechanicaldrawing.AchievementName;";
                DataTable dt_4  = MyDatabase.GetDataTableBySql(sql_4);
                this.dgvData.DataSource      = null;         //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                this.dgvData.DataSource      = dt_4;         //机械图信息显示DataGridView控件显示数据
                btnUpdate.Enabled            = true;         //更新机械图信息按钮可点击
                btnOutToFile.Text            = "导出此视图内容到文件"; //设置导出此视图内容到文件按钮显示内容
                btnOutToFile.Enabled         = true;         //设置导出此视图内容到文件按钮可点击
                this.txtAchievementName.Text = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[0].Value.ToString().Trim());
                this.cboSoftware.Text        = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[6].Value.ToString().Trim());
                this.txtSaveDirectory.Text   = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[7].Value.ToString().Trim());
                this.txtPartNum.Text         = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[8].Value.ToString().Trim());
                this.txtAssemblyNum.Text     = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[9].Value.ToString().Trim());
                this.txtDrawingNum.Text      = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[10].Value.ToString().Trim());
                return;
            }
            catch (Exception ex)
            {
                this.dgvData.DataSource = null;         //机械图信息显示DataGridView控件显示数据
                btnUpdate.Enabled       = false;        //更新机械图信息按钮不可点击
                btnOutToFile.Text       = "导出此视图内容到文件"; //设置导出此视图内容到文件按钮显示内容
                btnOutToFile.Enabled    = false;        //设置导出此视图内容到文件按钮不可点击
                MessageBox.Show("机械图管理界面初始化失败!", "提示");
                return;
            }
        }
Beispiel #10
0
        private void btnAdd_Click(object sender, EventArgs e)//开始导入
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)//数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            if (txtFilePath.Text == string.Empty)//判断文件路径是否为空
            {
                MessageBox.Show("文件路径不能为空!", "提示");
                return;
            }
            if (System.IO.File.Exists(txtFilePath.Text) == false)//判断文件是否存在
            {
                MessageBox.Show("文件不存在!", "提示");
                return;
            }
            try
            {
                btnAdd.Text = "正在导入中。。。";//开始导入按钮显示内容
                btnAdd.Enabled = false;//开始导入按钮不可点击
                System.Data.DataTable dt = new System.Data.DataTable();
                if (MyData.GetFileExtByFileName(txtFilePath.Text) == "xlsx" || MyData.GetFileExtByFileName(txtFilePath.Text) == "xls")//从Excel文件导入
                {
                    if (MyExcel.CheckExcelFileData(txtFilePath.Text, 6) == false)
                    {
                        btnAdd.Text = "开始导入";//开始导入按钮显示内容
                        btnAdd.Enabled = true;//开始导入按钮可点击
                        MessageBox.Show("文件数据格式有误,导入失败!", "提示");
                        return;
                    }
                    dt = MyExcel.LoadDataFromExcel(txtFilePath.Text);
                    if (MyExcel.DateTimeConvert(dt) == false)//从Excel文件中读取OA数据格式的日期文件后转换为字符串
                    {
                        btnAdd.Text = "开始导入";//开始导入按钮显示内容
                        btnAdd.Enabled = true;//开始导入按钮可点击
                        MessageBox.Show("文件数据格式有误,导入失败!", "提示");
                        return;
                    }
                }
                else if (MyData.GetFileExtByFileName(txtFilePath.Text) == "txt")//从txt文件导入
                {
                    if (MyTxt.CheckTxtFileData(txtFilePath.Text, 6) == false)
                    {
                        btnAdd.Text = "开始导入";//开始导入按钮显示内容
                        btnAdd.Enabled = true;//开始导入按钮可点击
                        MessageBox.Show("文件数据格式有误,导入失败!", "提示");
                        return;
                    }
                    dt = MyTxt.LoadDataFromTxt(txtFilePath.Text);
                }
                else//扩展名有误
                {
                    btnAdd.Text = "开始导入";//开始导入按钮显示内容
                    btnAdd.Enabled = true;//开始导入按钮可点击
                    MessageBox.Show("文件类型为不支持的导入类型,导入失败!", "提示");
                    return;
                }

                #region 将从文件导入的数据添加到数据库中
                System.Data.DataTable dt_success = new System.Data.DataTable();
                System.Data.DataTable dt_fail = new System.Data.DataTable();
                int success_num = 0;
                int fail_num = 0;
                for (int i = 0; i < dt.Columns.Count; i++)//写入表头信息
                {
                    dt_success.Columns.Add(dt.Columns[i].ColumnName);
                    dt_fail.Columns.Add(dt.Columns[i].ColumnName);
                }
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    try
                    {
                        string sql = string.Empty;
                        sql = string.Format("insert into datainfo values('{0}', '{1}', '{2}', '{3}', '{4}', {5});", MyDatabase.CharFilter(dt.Rows[i][0].ToString().Trim()), MyDatabase.CharFilter(dt.Rows[i][1].ToString().Trim()), Convert.ToDateTime(MyDatabase.CharFilter(dt.Rows[i][2].ToString().Trim())).ToString("yyyy-MM-dd"), MyDatabase.CharFilter(dt.Rows[i][3].ToString().Trim()), MyDatabase.CharFilter(dt.Rows[i][4].ToString().Trim()), Convert.ToDouble(MyDatabase.CharFilter(dt.Rows[i][5].ToString().Trim())));//sql语句
                        if (MyDatabase.UpdateDataBySql(sql))//添加成功
                        {
                            success_num++;
                            DataRow dr = dt_success.NewRow();
                            for (int j = 0; j < dt.Columns.Count; j++)
                            {
                                try
                                {
                                    if (j == 2)//对成果时间的数据格式的单独转化
                                    {
                                        dr[j] = Convert.ToDateTime(dt.Rows[i][j].ToString().Trim()).ToString("yyyy-MM-dd");
                                    }
                                    else if (j == 5)//对成果支撑基金的格式的单独转化
                                    {
                                        dr[j] = Convert.ToDouble(dt.Rows[i][j].ToString().Trim());
                                    }
                                    else//其他字段格式不需要转化
                                    {
                                        dr[j] = dt.Rows[i][j].ToString();
                                    }
                                }
                                catch (Exception ex_2)//格式转化出错
                                {
                                    dr[j] = "(数据格式有误)".ToString();
                                }
                            }
                            dt_success.Rows.Add(dr);
                        }
                        else//添加失败
                        {
                            fail_num++;
                            DataRow dr = dt_fail.NewRow();
                            for (int j = 0; j < dt.Columns.Count; j++)
                            {
                                try
                                {
                                    if (j == 2)//对成果时间的数据格式的单独转化
                                    {
                                        dr[j] = Convert.ToDateTime(MyDatabase.CharFilter(dt.Rows[i][j].ToString().Trim())).ToString("yyyy-MM-dd");
                                    }
                                    else if (j == 5)//对成果支撑基金的格式的单独转化
                                    {
                                        dr[j] = Convert.ToDouble(MyDatabase.CharFilter(dt.Rows[i][j].ToString().Trim()));
                                    }
                                    else//其他字段格式不需要转化
                                    {
                                        dr[j] = MyDatabase.CharFilter(dt.Rows[i][j].ToString());
                                    }
                                }
                                catch (Exception ex_2)//格式转化出错
                                {
                                    dr[j] = "(数据格式有误)".ToString();
                                }
                            }
                            dt_fail.Rows.Add(dr);
                        }
                    }
                    catch (Exception ex)//添加时发生异常
                    {
                        fail_num++;
                        DataRow dr = dt_fail.NewRow();
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            try
                            {
                                if (j == 2)//对成果时间的数据格式的单独转化
                                {
                                    dr[j] = Convert.ToDateTime(MyDatabase.CharFilter(dt.Rows[i][j].ToString().Trim())).ToString("yyyy-MM-dd");
                                }
                                else if (j == 5)//对成果支撑基金的格式的单独转化
                                {
                                    dr[j] = Convert.ToDouble(MyDatabase.CharFilter(dt.Rows[i][j].ToString().Trim()));
                                }
                                else//其他字段格式不需要转化
                                {
                                    dr[j] = MyDatabase.CharFilter(dt.Rows[i][j].ToString());
                                }
                            }
                            catch (Exception ex_2)//格式转化出错
                            {
                                dr[j] = "(数据格式有误)".ToString();
                            }
                        }
                        dt_fail.Rows.Add(dr);
                    }
                }
                txtResultSuccess.Text = success_num.ToString();//导入成功成果数目
                txtResultFail.Text = fail_num.ToString();//导入失败成果数目
                if (success_num == 0)
                {
                    btnOutToFileSuccess.Text = "将导入成功的成果导出到文件";//将导入成功的成果导出到文件按钮显示内容
                    btnOutToFileSuccess.Enabled = false;//将导入成功的成果导出到文件按钮不可点击
                    this.dgvDataSuccess.DataSource = null;//导入成功的信息显示DataGridView控件显示数据
                }
                else
                {
                    btnOutToFileSuccess.Text = "将导入成功的成果导出到文件";//将导入成功的成果导出到文件按钮显示内容
                    btnOutToFileSuccess.Enabled = true;//将导入成功的成果导出到文件按钮可点击
                    this.dgvDataSuccess.DataSource = null;//先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                    dgvDataSuccess.DataSource = dt_success;//导入成功的信息显示DataGridView控件显示数据
                }
                if (fail_num == 0)
                {
                    btnOutToFileFail.Text = "将导入失败的成果导出到文件";//将导入失败的成果导出到文件按钮显示内容
                    btnOutToFileFail.Enabled = false;//将导入失败的成果导出到文件按钮不可点击
                    this.dgvDataFail.DataSource = null;//导入失败的信息显示DataGridView控件显示数据
                }
                else
                {
                    btnOutToFileFail.Text = "将导入失败的成果导出到文件";//将导入失败的成果导出到文件按钮显示内容
                    btnOutToFileFail.Enabled = true;//将导入失败的成果导出到文件按钮可点击
                    this.dgvDataFail.DataSource = null;//先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                    dgvDataFail.DataSource = dt_fail;//导入失败的信息显示DataGridView控件显示数据
                }
                #endregion

                btnAdd.Text = "开始导入";//开始导入按钮显示内容
                btnAdd.Enabled = true;//开始导入按钮可点击
                MessageBox.Show("文件导入完成!", "提示");
                return;
            }
            catch (Exception ex_1)
            {
                btnAdd.Text = "开始导入";//开始导入按钮显示内容
                btnAdd.Enabled = true;//开始导入按钮可点击
                MessageBox.Show("文件导入失败!", "提示");
                return;
            }
        }
Beispiel #11
0
        private void btnSearch_Click(object sender, EventArgs e) //检索
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            if (cbAchievementMoney.Checked == false)                            //支撑基金不限制未选中
            {
                if (txtAchievementMoney.Text.ToString().Trim() == string.Empty) //支撑基金为空
                {
                    MessageBox.Show("如果检索不打算限制支撑基金,请将支撑基金后面的不限制选中,否则请输入支撑基金,支撑基金不能为空!", "提示");
                    return;
                }
                try//对支撑基金数据格式进行校检
                {
                    Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim()));
                }
                catch (Exception ex)
                {
                    MessageBox.Show("支撑基金信息输入格式有误,请重新检查之后再重试!", "提示");
                    //MessageBox.Show(ex.Message);
                    //throw new Exception(ex.Message);
                    return;
                }
            }
            if (cbAchievementDate.Checked == false)                                                            //成果时间不限制未选中
            {
                try                                                                                            //对成果时间数据格式进行校检
                {
                    Convert.ToDateTime(this.dtpAchievementDate.Text.ToString().Trim()).ToString("yyyy-MM-dd"); //最后加入ToString("yyyy-MM-dd")是为了去除时间只留下日期
                }
                catch (Exception ex)
                {
                    MessageBox.Show("时间信息输入格式有误,请重新检查之后再重试!", "提示");
                    //MessageBox.Show(ex.Message);
                    //throw new Exception(ex.Message);
                    return;
                }
            }
            string sql_result = string.Empty; //最终搜索的sql语句
            string sql_temp   = string.Empty; //生成最终搜索sql语句过程中的临时sql语句字符串变量

            sql_result = "select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where";
            sql_temp   = string.Format(" AchievementName like '%{0}%' ", MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim()));
            sql_result = sql_result + sql_temp + this.cboLogic.SelectedItem.ToString().Trim();
            sql_temp   = string.Format(" AchievementType like '%{0}%' ", MyDatabase.CharFilter(this.txtAchievementType.Text.ToString().Trim()));
            sql_result = sql_result + sql_temp + this.cboLogic.SelectedItem.ToString().Trim();
            if (cbAchievementDate.Checked == false)//成果时间不限制未选中
            {
                sql_temp   = string.Format(" AchievementDate like '%{0}%' ", Convert.ToDateTime(this.dtpAchievementDate.Text.ToString().Trim()).ToString("yyyy-MM-dd"));
                sql_result = sql_result + sql_temp + this.cboLogic.SelectedItem.ToString().Trim();
            }
            sql_temp   = string.Format(" AchievementAuthor like '%{0}%' ", MyDatabase.CharFilter(this.txtAchievementAuthor.Text.ToString().Trim()));
            sql_result = sql_result + sql_temp + this.cboLogic.SelectedItem.ToString().Trim();
            sql_temp   = string.Format(" AchievementCompany like '%{0}%'", MyDatabase.CharFilter(this.txtAchievementCompany.Text.ToString().Trim()));
            sql_result = sql_result + sql_temp;
            if (cbAchievementMoney.Checked == false)//支撑基金不限制未选中
            {
                sql_result = sql_result + " " + this.cboLogic.SelectedItem.ToString().Trim();
                sql_temp   = string.Format(" (AchievementMoney between {0} and {1})", Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim())) - 0.01, Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim())) + 0.01);
                sql_result = sql_result + sql_temp;
            }
            sql_result = sql_result + ";";
            try
            {
                DataTable dt = MyDatabase.GetDataSetBySql(sql_result);
                if (dt == null)                             //数据库连接失败
                {
                    btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                    btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                    btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                    btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                    txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                    sql_backup              = string.Empty;
                    this.dgvData.DataSource = null;         //DataGridView控件显示数据
                    MessageBox.Show("数据库连接失败!", "提示");
                    return;
                }
                if (dt.Rows.Count == 0)                     //未检索到符合要求的成果信息
                {
                    btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                    btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                    btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                    btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                    txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                    sql_backup              = string.Empty;
                    this.dgvData.DataSource = null;         //DataGridView控件显示数据
                    MessageBox.Show("未检索到符合要求的成果信息!", "提示");
                    return;
                }
                btnDelete.Enabled         = true;         //删除此项成果按钮可点击
                btnUpdate.Enabled         = true;         //更新此项成果按钮可点击
                btnOutToFile.Text         = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                btnOutToFile.Enabled      = true;         //导出此检索成果到文件按钮可点击
                this.dgvData.DataSource   = null;         //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                this.dgvData.DataSource   = dt;           //DataGridView控件显示数据
                this.txt_achievement_name = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[0].Value.ToString().Trim());
                sql_backup = sql_result;
                MessageBox.Show("检索成功!", "提示");
                return;
            }
            catch (Exception ex)
            {
                btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                sql_backup              = string.Empty;
                this.dgvData.DataSource = null;         //DataGridView控件显示数据
                MessageBox.Show("检索失败!", "提示");
                return;
            }
        }
Beispiel #12
0
        private void btnDelete_Click(object sender, EventArgs e) //删除此项成果
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)     //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            DialogResult result = MessageBox.Show("是否确定删除此项成果?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (result == DialogResult.OK)//确定
            {
                if (txt_achievement_name != string.Empty)
                {
                    string sql_1 = string.Format("delete from datainfo where datainfo.AchievementName='{0}';", txt_achievement_name); //sql语句
                    if (MyDatabase.UpdateDataBySql(sql_1))                                                                            //删除成功
                    {
                        #region 更新DataGridView控件内的内容
                        try
                        {
                            DataTable dt = MyDatabase.GetDataSetBySql(sql_backup);
                            if (dt == null)                             //数据库连接失败
                            {
                                btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                                btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                                btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                                btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                                txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                                sql_backup              = string.Empty;
                                this.dgvData.DataSource = null;         //DataGridView控件显示数据
                                MessageBox.Show("数据库连接失败!", "提示");
                                return;
                            }
                            if (dt.Rows.Count == 0)                     //未检索到符合要求的成果信息
                            {
                                btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                                btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                                btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                                btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                                txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                                sql_backup              = string.Empty;
                                this.dgvData.DataSource = null;         //DataGridView控件显示数据
                                return;
                            }
                            btnDelete.Enabled         = true;         //删除此项成果按钮可点击
                            btnUpdate.Enabled         = true;         //更新此项成果按钮可点击
                            btnOutToFile.Text         = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                            btnOutToFile.Enabled      = true;         //导出此检索成果到文件按钮可点击
                            this.dgvData.DataSource   = null;         //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                            this.dgvData.DataSource   = dt;           //DataGridView控件显示数据
                            this.txt_achievement_name = MyDatabase.CharFilter(this.dgvData.Rows[0].Cells[0].Value.ToString().Trim());
                            return;
                        }
                        catch (Exception ex)
                        {
                            btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                            btnUpdate.Enabled       = false;        //更新此项成果按钮不可点击
                            btnOutToFile.Text       = "导出此检索成果到文件"; //导出此检索成果到文件按钮显示内容
                            btnOutToFile.Enabled    = false;        //导出此检索成果到文件按钮不可点击
                            txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                            sql_backup              = string.Empty;
                            this.dgvData.DataSource = null;         //DataGridView控件显示数据
                            return;
                        }
                        #endregion
                    }
                }
                MessageBox.Show("删除失败!", "提示");
                return;
            }
            else//取消
            {
                return;
            }
        }
        private void btnAdd_Click(object sender, EventArgs e) //录入此项成果
        {
            if (MyDatabase.TestMyDatabaseConnect() == false)  //数据库连接失败
            {
                MessageBox.Show("数据库连接失败!", "提示");
                return;
            }
            if (this.txtAchievementName.Text.ToString().Trim() == string.Empty || this.dtpAchievementDate.Text.ToString().Trim() == string.Empty || this.txtAchievementAuthor.Text.ToString().Trim() == string.Empty || this.txtAchievementCompany.Text.ToString().Trim() == string.Empty || this.txtAchievementMoney.Text.ToString().Trim() == string.Empty)//数据是否为空检测
            {
                MessageBox.Show("信息输入不完整,请重新检查之后再重试!", "提示");
                return;
            }
            if (string.Compare(this.cboAchievementType.SelectedItem.ToString(), "(其他)") == 0)//对成果类型数据是否为空进行单独判断
            {
                if (this.txtAchievementType.Text.ToString().Trim() == string.Empty)
                {
                    MessageBox.Show("信息输入不完整,请重新检查之后再重试!", "提示");
                    return;
                }
            }
            try                                                                                            //对成果时间和成果支撑基金的数据格式进行检测(如数据有误会throw异常,程序进入catch捕捉代码中)
            {
                Convert.ToDateTime(this.dtpAchievementDate.Text.ToString().Trim()).ToString("yyyy-MM-dd"); //最后加入ToString("yyyy-MM-dd")是为了去除时间只留下日期
                Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim()));
            }
            catch (Exception ex)
            {
                MessageBox.Show("信息输入格式有误,请重新检查之后再重试!", "提示");
                //throw new Exception(ex.Message);
                return;
            }
            //所有数据的合法性均检测完毕
            string sql_1 = string.Empty;

            if (string.Compare(this.cboAchievementType.SelectedItem.ToString(), "(其他)") == 0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        //对成果类型数据进行判断
            {
                sql_1 = string.Format("insert into datainfo values('{0}', '{1}', '{2}', '{3}', '{4}', {5});", MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim()), MyDatabase.CharFilter(this.txtAchievementType.Text.ToString().Trim()), Convert.ToDateTime(this.dtpAchievementDate.Text.ToString().Trim()).ToString("yyyy-MM-dd"), MyDatabase.CharFilter(this.txtAchievementAuthor.Text.ToString().Trim()), MyDatabase.CharFilter(this.txtAchievementCompany.Text.ToString().Trim()), Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim()))); //sql语句
            }
            else
            {
                sql_1 = string.Format("insert into datainfo values('{0}', '{1}', '{2}', '{3}', '{4}', {5});", MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim()), MyDatabase.CharFilter(this.cboAchievementType.SelectedItem.ToString().Trim()), Convert.ToDateTime(this.dtpAchievementDate.Text.ToString().Trim()).ToString("yyyy-MM-dd"), MyDatabase.CharFilter(this.txtAchievementAuthor.Text.ToString().Trim()), MyDatabase.CharFilter(this.txtAchievementCompany.Text.ToString().Trim()), Convert.ToDouble(MyDatabase.CharFilter(this.txtAchievementMoney.Text.ToString().Trim()))); //sql语句
            }
            if (MyDatabase.UpdateDataBySql(sql_1))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           //添加成功
            {
                btnDelete.Enabled    = true;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 //删除此项成果按钮可点击
                btnOutToFile.Text    = "导出此项成果到文件";                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          //导出此项成果到文件按钮显示内容
                btnOutToFile.Enabled = true;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 //导出此项成果到文件按钮可点击
                txt_achievement_name = MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim());                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                //记录数据库内主键的值
                string    sql_2 = string.Format("select datainfo.AchievementName as '成果名称', datainfo.AchievementType as '成果类型', datainfo.AchievementDate as '时间', datainfo.AchievementAuthor as '作者', datainfo.AchievementCompany as '单位', datainfo.AchievementMoney as '支撑基金' from datainfo where AchievementName='{0}';", MyDatabase.CharFilter(this.txtAchievementName.Text.ToString().Trim()));
                DataTable dt    = MyDatabase.GetDataSetBySql(sql_2);
                if (dt == null)                             //数据库连接失败
                {
                    btnDelete.Enabled       = false;        //删除此项成果按钮不可点击
                    btnOutToFile.Text       = "导出此项成果到文件";  //导出此项成果到文件按钮显示内容
                    btnOutToFile.Enabled    = false;        //导出此项成果到文件按钮不可点击
                    txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                    this.dgvData.DataSource = null;         //DataGridView控件显示数据
                    MessageBox.Show("数据库连接失败!", "提示");
                    return;
                }
                this.dgvData.DataSource = null; //先置为null,否则在右键删除DataGridView后再次检索后显示的字段顺序会有误
                this.dgvData.DataSource = dt;   //DataGridView控件显示数据
                MessageBox.Show("添加成功!", "提示");
            }
            else//添加失败
            {
                btnDelete.Enabled       = false;//删除此项成果按钮不可点击
                btnOutToFile.Text       = "导出此项成果到文件";  //导出此项成果到文件按钮显示内容
                btnOutToFile.Enabled    = false;        //导出此项成果到文件按钮不可点击
                txt_achievement_name    = string.Empty; //记录数据库内主键的值为空
                this.dgvData.DataSource = null;         //DataGridView控件显示数据
                MessageBox.Show("添加失败!", "提示");
            }
        }