C#系统开发操作日志的实现

       系统日志用来记录用户对系统的操作记录,实现过程比较简单。 

第一步:设计一个表(命名为goodluck_log),用来记录操作事项,设计如下:

C#系统开发操作日志的实现_第1张图片

其中,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();
        }

结果如下图所示:








你可能感兴趣的:(sql,server,C#,操作日志)