系统日志用来记录用户对系统的操作记录,实现过程比较简单。
第一步:设计一个表(命名为goodluck_log),用来记录操作事项,设计如下:
其中,UserName为操作员姓名,SQL_Time为操作日期,SQL_log为操作描述,数据类型如图所示。
第二步:编写插入操作记录的SQL存储过程
create proc goodlucklog(@username varchar(50), @sql_log varchar(200))as declare @sql_time datetime select @sql_time=getdate() insert into goodluck_log(username,sql_time,sql_log)values(@username,@sql_time,@sql_log)
第三步:前端操作系统并调用存储过程goodlucklog
以下以操作员退出系统为例:
private void Main_FormClosing(object sender, FormClosingEventArgs e) { DialogResult TS = MessageBox.Show("是否退出本系统?", "退出提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); MyDBase DB = new MyDBase(DBUser.sserver, "GoodLuck", DBUser.suser, DBUser.spasswd); string SQL_log; if (TS == DialogResult.Yes) { SQL_log = "操作员" + DBUser.suser + "退出了系统"; SQL_log = "exec goodlucklog '" + DBUser.suser + "','" + SQL_log + "'"; DB.ExecuteSQL(SQL_log); DB.DBClose(); e.Cancel = false; } else { SQL_log = "操作员" + DBUser.suser + "尝试退出系统"; SQL_log = "exec goodlucklog '" + DBUser.suser + "','" + SQL_log + "'"; DB.ExecuteSQL(SQL_log); DB.DBClose(); e.Cancel = true; } }第四步:前端显示操作记录
private void button2_Click(object sender, EventArgs e) { MyDBase DB = new MyDBase(DBUser.sserver, DBUser.DBName, DBUser.suser, DBUser.spasswd); DataSet DS = DB.GetRecordset("select username as 操作员, SQL_Time as 操作日期,sql_log as 操作描述 from goodluck_log order by SQL_Time"); dataGridView1.DataSource = DS.Tables[0]; DB.DBClose(); }
结果如下图所示: