第一步:设计一个表(命名为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();
}
结果如下图所示:
原文:http://blog.csdn.net/lucky51222/article/details/21277895