提供连接数据库,执行insert、delete、update的方法
/// <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/17rVU09LM-81QrlLjYMTFkQ
提取码:ecvo
2、管理员角色
视频地址:
链接:https://pan.baidu.com/s/1dIACzd-VBiomi7Q8zeaKCw
提取码:nozo
就不一 一的贴出来了,需要的联系我,共同交流,软件源码也好商量。
tel:18798835893