人事工资信息管理系统(核心代码实现、操作视频)

提供连接数据库,执行insert、delete、update的方法

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

/// <summary>

       /// 执行insert、delete、update的方法

       /// </summary>

       /// <param name="sql"></param>

       /// <param name="pms"></param>

       /// <returns></returns>

       public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)

       {

   using (SqlConnection conn = new SqlConnection(connStr))

               {

                   conn.Open();

                   using (SqlCommand cmd = conn.CreateCommand())

                   {

                       cmd.CommandText = sql;

                       cmd.Parameters.AddRange(pms);

                       return cmd.ExecuteNonQuery();

                   }

               }

       }

XML文件操作代码

复制代码

 /// <summary>
        /// 创建XML文件
        /// </summary>
        /// <param name="strXMLPath"></param>
        public static void CreateXML(string strXMLPath)
        {
            XmlDocument xmlDoc = new XmlDocument();//新建一个xml文档
            xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));//xml文件头
            XmlNode root = xmlDoc.CreateElement("root");
            xmlDoc.AppendChild(root);
            XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, "UserName", null);
            node.InnerText = "";
            root.AppendChild(node);
            xmlDoc.Save(strXMLPath);
        }

/// <summary>
        /// 写入数据,并保存
        /// </summary>
        /// <param name="strXMLPath"></param>
        /// <param name="strNodeName">写入的节点</param>
        /// <param name="strValue">写入的数据</param>
        public static void UpdateXml(string strXMLPath,string strNodeName, string strValue)
        {
            XmlDocument xmlDoc = new XmlDocument();//新建一个xml文档
            xmlDoc.Load(strXMLPath);//加载文件路径
            XmlNode root = xmlDoc.SelectSingleNode("root");
            XmlNode node = root.SelectSingleNode(strNodeName);
            node.InnerText = strValue;
            xmlDoc.Save(strXMLPath);
        }

/// <summary>
        /// 读取数据
        /// </summary>
        /// <param name="strXMLPath"></param>
        /// <param name="nodeName">待读取的节点</param>
        /// <returns>返回节点对应的值</returns>
        public static string ReadXml(string strXMLPath,string nodeName)
        {
            XmlDocument xmlDoc = new XmlDocument();//新建一个xml文档
            xmlDoc.Load(strXMLPath);//加载文件路径
            XmlNode root = xmlDoc.SelectSingleNode("root");
            XmlNode node = root.SelectSingleNode(nodeName);
            return node.InnerText;
        }

复制代码

日志操作类

复制代码

 /// <summary>
    /// 日志操作类
    /// </summary>
    public static class myLog
    {
        /// <summary>
        /// 日志文件路径
        /// </summary>
        private static string strLogPath = Directory.GetCurrentDirectory() + @"\Log\日志文件" + DateTime.Today.ToString("yyyyMMdd") + ".log";
        /// <summary>
        /// 记录开始-用于开始执行代码时写入时间和开始
        /// </summary>
        /// <param name="strTitle">日志开始</param>
        public static string WriteStartLog(string strTitle)
        {
            string strRZ = "";
            //DateTime.Today.ToString("yyyyMMdd") + ".log"
            //判断是否存在文件
            if (File.Exists(strLogPath))//文件存在
            {
                //追加写入
                try
                {
                    using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                    {
                        strRZ += "开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + Environment.NewLine;
                        strRZ += "开始:" + strTitle + Environment.NewLine;

                        sw.WriteLine("开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                        sw.WriteLine("开始:" + strTitle);
                        //sw.WriteLine("结束:" + strContent);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else//文件不存在
            {
                try
                {
                    //创建文件
                    Directory.CreateDirectory(Path.GetDirectoryName(strLogPath));
                    using (File.Create(strLogPath))
                    { }
                    //追加写入
                    //追加写入
                    using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                    {
                        strRZ += "开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + Environment.NewLine;
                        strRZ += "开始:" + strTitle + Environment.NewLine;

                        sw.WriteLine("开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                        sw.WriteLine("开始:" + strTitle);
                        //sw.WriteLine("结束:" + strContent);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            return strRZ;
        }
        /// <summary>
        /// 记录开始-用于开始执行代码时写入时间和开始
        /// </summary>
        /// <param name="strTitle">日志开始</param>
        /// <param name="sender">位置</param>
        public static string WriteStartLog(string strTitle, object sender)
        {
            string strRZ = "";

            string strSender = "";
            if (sender == null)
            { strSender = ""; }
            else
            { strSender = sender.ToString(); }
            //DateTime.Today.ToString("yyyyMMdd") + ".log"
            //判断是否存在文件
            if (File.Exists(strLogPath))//文件存在
            {
                //追加写入
                try
                {
                    using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                    {
                        strRZ += "位置:" + strSender + Environment.NewLine;
                        strRZ += "开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + Environment.NewLine;
                        strRZ += "开始:" + strTitle + Environment.NewLine;

                        sw.WriteLine("位置:" + strSender);
                        sw.WriteLine("开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                        sw.WriteLine("开始:" + strTitle);
                        //sw.WriteLine("结束:" + strContent);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            else//文件不存在
            {
                try
                {

                    //创建文件
                    Directory.CreateDirectory(Path.GetDirectoryName(strLogPath));
                    using (File.Create(strLogPath))
                    { }
                    //追加写入
                    //追加写入
                    using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                    {
                        strRZ += "位置:" + strSender + Environment.NewLine;
                        strRZ += "开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + strSender + Environment.NewLine;
                        strRZ += "开始:" + strTitle + Environment.NewLine;

                        sw.WriteLine("位置:" + strSender);
                        sw.WriteLine("开始时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                        sw.WriteLine("开始:" + strTitle);
                        //sw.WriteLine("结束:" + strContent);
                    }
                }
                catch (Exception)
                {

                    throw;
                }
            }
            return strRZ;
        }

        /// <summary>
        /// 记录完成-用于记录代码执行完成后记录结束和结束时的时间
        /// </summary>
        /// <param name="strContent">结束</param>
        public static string WriteEndLog(string strContent)
        {
            string strRZ = "";

            try
            {
                using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                {
                    strRZ += "结束:" + strContent + Environment.NewLine;
                    strRZ += "结束时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + Environment.NewLine;
                    strRZ += Environment.NewLine;

                    sw.WriteLine("结束:" + strContent);
                    sw.WriteLine("结束时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                    sw.WriteLine(Environment.NewLine);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return strRZ;
        }

        /// <summary>
        /// 记录完成-用于记录代码执行完成后记录结束和结束时的时间
        /// </summary>
        /// <param name="ex">错误信息</param>
        public static string WriteEndLog(Exception ex)
        {
            string strRZ = "";

            try
            {
                using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                {
                    strRZ += "结束:" + ex.ToString() + Environment.NewLine;
                    strRZ += "结束时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + Environment.NewLine;
                    strRZ += Environment.NewLine;

                    sw.WriteLine("结束:" + ex.ToString());
                    sw.WriteLine("结束时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                    sw.WriteLine(Environment.NewLine);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return strRZ;
        }
        /// <summary>
        /// 记录完成-用于记录代码执行完成后记录结束和结束时的时间
        /// </summary>
        /// <param name="strContent">结束</param>
        /// <param name="ex">错误信息</param>
        public static string WriteEndLog(string strContent, Exception ex)
        {
            string strRZ = "";

            try
            {
                using (StreamWriter sw = new StreamWriter(strLogPath, true, Encoding.Default))
                {
                    strRZ += "结束:" + strContent + " 错误信息:" + ex.ToString() + Environment.NewLine;
                    strRZ += "结束时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :" + Environment.NewLine;
                    strRZ += Environment.NewLine;

                    sw.WriteLine("结束:" + strContent + " 错误信息:" + ex.ToString());
                    sw.WriteLine("结束时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + " :");
                    sw.WriteLine(Environment.NewLine);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return strRZ;
        }


        /// <summary>
        /// 获取距离今天的前几天日期
        /// </summary>
        /// <param name="beforeDay">前几天数</param>
        /// <returns>前几天的日期</returns>
        private static DateTime GetCulDateBefore(int beforeDay)
        {
            DateTime dt = DateTime.Now;
            string strBeforeDay = dt.AddDays(-beforeDay).ToString("yyyy-MM-dd");
            DateTime newDay = Convert.ToDateTime(strBeforeDay);
            return newDay;
        }

        /// <summary>
        /// 删除指定距离某天前的日志
        /// </summary>
        /// <param name="strLogPathes"></param>
        /// <param name="beforeDay"></param>
        /// <returns></returns>
        public static void DeleteLogByCulDateBefore(int beforeDay)
        {
            DateTime dtime = GetCulDateBefore(beforeDay);
            int strDate = Convert.ToInt32(dtime.ToString("yyyyMMdd"));
            //string[] stTempLogPathes = strLogPathes;
            string[] strLogPathes = Directory.GetFiles(Directory.GetParent(strLogPath).FullName, "*.log");
            for (int i = 0; i < strLogPathes.Length; i++)
            {
                string tempPath = strLogPathes[i];
                string logName = Path.GetFileNameWithoutExtension(tempPath);
                try
                {
                    int intLog = Convert.ToInt32(logName.Substring(4));
                    if (strDate > intLog)
                    {
                        WriteStartLog("删除日志");
                        File.Delete(tempPath);
                        WriteEndLog("删除日志成功,路径:" + tempPath);
                    }
                }
                catch (Exception ex)
                {
                    WriteEndLog("删除日志失败,路径:" + tempPath, ex);
                }
            }
        }
    }

复制代码

验证手机号合法性

复制代码

 /// <summary>
        /// 判断输入的字符串是否是一个合法的手机号
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static bool CheckPhoneNoIsLegal(string phone)
        {
            phone = phone.Trim();    //    去除手机号的前后空格
            int phoneLength = phone.Length;    //    获取手机号的长度
            bool phoneCheck = Regex.IsMatch(phone, @"^[1]+[3-8]+\d{9}");
            bool phoneCheck2 = Regex.IsMatch(phone, @"^[1]+[9][1,8,9]+\d{8}");
            if (!phoneCheck && !phoneCheck2 || phoneLength != 11)
            {
                return false;    //    手机号不合法
            }
            return true;    //    手机号合法
        }

复制代码

还有验证身份证、邮箱等的合法性,这里就不贴出来了,有需要的联系我。

数据库备份与还原

 实现代码

复制代码

 private void btnPath_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "bak文件|*.bak";
            sfd.AddExtension = true;
            sfd.Title = "备份数据库";
            if(sfd.ShowDialog()==DialogResult.OK)
            {
                string strLuJing = sfd.FileName;//获取路径
                txtBackUpPath.Text = strLuJing;//赋值给文本显示
            }
        }

        private void btnBackUp_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("是否备份数据", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                if (txtBackUpPath.Text.ToString() != "")
                {
                    bool isBackUped = SQLHelper.BackUpDataBase(txtBackUpPath.Text);
                    if(isBackUped==true)
                    {
                        MessageBox.Show("备份完成!");
                    }
                    else
                    {
                        MessageBox.Show("备份失败!");
                    }
                }
            }
        }

        private void btnRestore_Click(object sender, EventArgs e)
        {
            //文件控件
            OpenFileDialog filename = new OpenFileDialog();
            //获取路径
            filename.InitialDirectory = Application.StartupPath;
            filename.Multiselect = false;
            //设置可打开的文件格式
            filename.Filter = "bak文件|*.bak";
            if (filename.ShowDialog() == DialogResult.OK)
            {
                txtRestore.Text = filename.FileName;
            }
        }

        private void btnExquteRestore_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("是否还原数据", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                if (txtRestore.Text.ToString() != "")
                {
                    string databasefile = txtRestore.Text;
                    bool isRestore = SQLHelper.RestoreDataBase(databasefile);
                    if(isRestore==true)
                    {
                        MessageBox.Show("还原完成!");
                    }
                    else
                    {
                        MessageBox.Show("还原失败!");
                    }
                }
            }
        }

复制代码

实现对数据库的增删改查

复制代码

//增加和修改
            if (isEdit == false)//新增保存
            {
                ProjectTable temp = new ProjectTable();
                ControlsDataToModel(temp);
              
                try
                {
                    myLog.WriteStartLog("新增项目信息", sender);

                    int isAddNew = new ProjectTableBLL().AddNew(temp);
                    MessageBox.Show("新增成功!");
                    InitGetData();

                    myLog.WriteEndLog("新增项目信息完成");
                }
                catch(Exception ex)
                {
                    MessageBox.Show("失败!请查看操作日志,联系管理员解决!");
                    myLog.WriteEndLog("新增项目信息失败", ex);
                }
            }
            else if(isEdit== true)//编辑保存
            {
                ControlsDataToModel(projectTable);
                
                try
                {
                    myLog.WriteStartLog("编辑保存项目信息", sender);
                    bool isUpdate = new ProjectTableBLL().Update(projectTable);
                    MessageBox.Show("保存成功!");
                    InitGetData();

                    myLog.WriteEndLog("编辑保存项目信息完成");
                }
               catch (Exception ex)
                {
                    MessageBox.Show("失败!请查看操作日志,联系管理员解决!");
                    myLog.WriteEndLog("编辑保存项目信息失败", ex);
                }
            }


//删除
           DialogResult drt=  MessageBox.Show("确定要删除该条目吗?删除后无法恢复!", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
            if (drt==DialogResult.Yes)
            {
                try
                {
                    myLog.WriteStartLog("删除项目信息", sender);
                    bool isDelete = new ProjectTableBLL().Delete(projectTable.XM_ID);
                    InitGetData();
                    myLog.WriteEndLog("删除项目信息完成");
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show("失败!请查看操作日志,联系管理员解决!");
                    myLog.WriteEndLog("删除项目信息失败", ex);
                }
            }

//查询
 if (txtCheckByXM_MC.EditValue == null)
            {
                MessageBox.Show("请输入名称!");
                return;
            }
            try
            {
                myLog.WriteStartLog("根据项目名称查询项目信息", sender);

                DataTable dt = new ProjectTableBLL().GetByName(txtCheckByXM_MC.EditValue.ToString());
                gridControl1.DataSource = dt;
                selIndex = 0;
                getSelDataIndex(selIndex);
                ControlsEnable(false);

                myLog.WriteEndLog("根据项目名称查询项目信息完成");
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("失败!请查看操作日志,联系管理员解决!");
                myLog.WriteEndLog("根据项目名称查询项目信息失败", ex);
            }

复制代码

 操作视频

1、职工角色

 视频地址:

链接: https://pan.baidu.com/s/1SPEbfUoTq-WDvQ5cc3uHEg

提取码: 9fah 

或:https://download.csdn.net/download/qq_34510277/12407088

 2、管理员角色

 视频地址:

链接: https://pan.baidu.com/s/1L1rXVNN6ZzS988durWvQ5g

提取码: 9set

或:https://download.csdn.net/download/qq_34510277/12407090

就不一 一的贴出来了,需要的联系我,共同交流,软件源码也好商量。

tel:18798835893

猜你喜欢

转载自blog.csdn.net/qq_34510277/article/details/106044461