操作日志的生成和综合搜索
2014-04-07 20:09
253 查看
一:截图
二:OperationLogDAL.cs源代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using HRMSys.Model; using System.Data; using System.Data.SqlClient; namespace HRMSys.DAL { public class OperationLogDAL { /// <summary> /// 将数据库的格式转换为object对象的字段格式 /// </summary> /// <param name="row"></param> /// <returns></returns> public OperationLog Tomodel(DataRow row) { OperationLog log=new OperationLog(); log.Id=(Guid)row["Id"]; log.OperatorId = (Guid)row["OperatorId"]; log.MakeDate=(DateTime)row["MakeDate"]; log.ActionDesc = (string)row["ActionDesc"]; log.LoginUser = (string)sqlhelper.FromDbValue(row["LoginUser"]); return log; } /// <summary> /// 插入一条操作记录 /// </summary> /// <param name="OperatorId"></param> /// <param name="ActionDesc"></param> public void InsertLog(Guid OperatorId, string loginUser, string ActionDesc) { sqlhelper.ExecuteNon(@"insert into T_OperationLog(Id,OperatorId,MakeDate,ActionDesc,LoginUser) values(newid(),@OperatorId,getdate(),@ActionDesc,@LoginUser)", new SqlParameter("@ActionDesc", ActionDesc), new SqlParameter("@OperatorId", OperatorId), new SqlParameter("@LoginUser", loginUser));//这里是values,不是value } /// <summary> /// 插入一条操作记录 /// </summary> /// <param name="OperatorId"></param> /// <param name="ActionDesc"></param> public void InsertLog(Guid OperatorId, string ActionDesc) { sqlhelper.ExecuteNon(@"insert into T_OperationLog(Id,OperatorId,MakeDate,ActionDesc) values(newid(),@OperatorId,getdate(),@ActionDesc)", new SqlParameter("@ActionDesc", ActionDesc), new SqlParameter("@OperatorId", OperatorId) );//这里是values,不是value } /// <summary> /// 得到综合查询的OperationLog数组 /// </summary> /// <param name="sql"></param> /// <param name="sqlparameter"></param> /// <returns></returns> public OperationLog[] Search(string sql, SqlParameter[] sqlparameters) { DataTable table = sqlhelper.datatable(sql, sqlparameters); //OperationLog[] log=new OperationLog[table.Rows.Count](); OperationLog[] log = new OperationLog[table.Rows.Count];//不需要再加小括号了 for (int i = 0; i < table.Rows.Count; i++) { log[i] =Tomodel( table.Rows[i]); } return log; } } }
三:OperationLog.cs源代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HRMSys.Model { public class OperationLog { public Guid Id { get; set; } public Guid OperatorId { get; set; } public DateTime MakeDate { get; set; } public String ActionDesc { get; set; } public string LoginUser { get; set; } } }
四:OperationLogList.cs源代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HRMSys.Model { public class OperationLogList { public Guid Id { get; set; } public string OperatorName { get; set; } public DateTime MakeDate { get; set; } public String ActionDesc { get; set; } public string LoginUser { get; set; } } }
五:OperationSearchLog.cs界面和源代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using HRMSys.DAL; using System.Data.SqlClient; using HRMSys.Model; namespace HYMSys.UI.SystemMgr { public partial class OperationSearchLog : Form { public OperationSearchLog() { InitializeComponent(); } /// <summary> /// 载入事件,给窗口填值 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OperationSearchLog_Load(object sender, EventArgs e) { OperatorDAL dal = new OperatorDAL(); Operator op = new Operator(); cb_operator.DataSource = dal.GetListNotDelete(); //cb_operator.SelectedValue = op.Id; //cb_operator.ValueMember = op.UserName; //cb_operator.SelectedValue = "Id"; //cb_operator.ValueMember = "UserName"; cb_operator.ValueMember = "Id"; cb_operator.DisplayMember = "UserName"; dtp_startdate.Value = DateTime.Today.AddDays(-5); dtp_enddate.Value = DateTime.Today; } /// <summary> /// 综合查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_search_Click(object sender, EventArgs e) { List<string> whereList = new List<string>(); List<SqlParameter> parametersList = new List<SqlParameter>(); //if(chb_operator.CheckState==true)错误的 if(chb_operator.Checked==true) { whereList.Add("OperatorId=@OperatorId"); parametersList.Add(new SqlParameter("@OperatorId", cb_operator.SelectedValue));//不能用cb_operator.text } if (chb_date.Checked == true) { whereList.Add("MakeDate>=@dtp_startdate and MakeDate<=@dtp_enddate"); parametersList.Add(new SqlParameter("@dtp_startdate", dtp_startdate.Value));//不能用dtp_startdate parametersList.Add(new SqlParameter("@dtp_enddate", dtp_enddate.Value)); } if (chb_desc.Checked == true) { whereList.Add("ActionDesc like @ActionDesc"); parametersList.Add(new SqlParameter("@ActionDesc","%"+tb_desc.Text+"%")); } if (whereList.Count <= 0) { MessageBox.Show("至少选择一个查询条件");//防止查询出的结果过多 return; } string whereSql = string.Join(" and ", whereList); string sql = "select * from T_OperationLog " ; if (whereSql.Length > 0) { sql = sql + " where " + whereSql; } OperationLogDAL dal = new OperationLogDAL(); dgv_logResult.DataSource = dal.Search(sql, parametersList.ToArray()); // .DataSource = dal.Search(Sql, parameter); } } }
相关文章推荐
- 如何生成sqlplus操作日志
- 网狐荣耀版vs生成解决方案时出现“出现未能写入日志,请求的操作无法在使用用户映射区域打开的文件上执行“错误
- Delphi xe10 FireDac 之 如何生成操作日志
- 生成txt日志操作文件
- sql server里执行delete或者update操作产生大量事务日志,导致空间不够,执行失败,能不能设置此类动作时不生成事务日志的
- 生成系统操作日志
- 简单的monkey测试命令行操作及生成log日志保存
- DEMON进程+inotify自动生成系统级文件操作日志demo
- 用触发器生成数据库表的数据操作日志
- sudo 操作日志生成
- Magicodes.WeiChat——ASP.NET Scaffolding生成增删改查、分页、搜索、删除确认、批量操作、批量删除等业务代码
- 编写文件搜索小程序:1. 输入绝对路径以及搜索关键字,2. 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出,3. 将当前操作记录日志
- 用触发器生成SQL Server2000数据表的操作日志
- django-生成详细的操作日志
- Magicodes.WeiChat——ASP.NET Scaffolding生成增删改查、分页、搜索、删除确认、批量操作、批量删除等业务代码
- 用触发器生成数据库表的数据操作日志
- Sql Server实用操作-日志清除的两种方法
- Apache按天截断日志工具,无法生成访问日志
- struts+mybatis 拦截器系统日志生成
- postgresql减少wal日志生成量的方法