实现记录和查看用户的系统登录和退出历史

一、首先定义3个全局变量:
    在登录窗体FrmLogin.cs定义3个全局变量

  1. 登录成功和退出的用户Uid (public static string Uid;) --在第三章密码修改功能的时候已经定义了
  2. 登录成功和退出的时间Time  (public static DateTime Time;)
     3. 登录情况Situation-2种包括"登录"和"退出"  (public static string Situation;)

//定义一个全局变量 Uid;  用于获取登录成功后的用户名  public static string Uid;  
//定义一个全局变量 Time  用于获取登录成功后的用户的登录时间  public static DateTime Time;  
//定义一个登录全局变量 用来获取 "登录" 或是"退出"  public static string Situation; 

二、将登陆信息赋给全局变量

定义完获取登录的全局变量之后,然后我们需要在判断登录成功后的代码里添加一些代码来获取用户的所有登录信息,并赋给全局变量.
//如果文本框中输入的密码 ==数据库中的密码  
if (pwd == txtPwd.Text)  
{  
    //获取登陆成功后的用户ID  
    Uid = txtName.Text;  
    //获取当前登录时间  
    Time = DateTime.Now;  
    //获取当前用户登录的情况  
    Situation = "登录";  
    //说明在该账户下 密码正确, 系统登录成功  
    MessageBox.Show("系统登录成功,正在跳转主页面...");  
    FrmMain main = new FrmMain();  
    main.Show();  
    this.Hide();  
}  
三、在登陆成功后将登陆信息写入数据库 
public void AddLog()  
        {  
            string sql = "insert into Log(User_Name,Situation,Time) values (@User_Name,@Situation,@Time) ";  
  
            //简单判断下 插入的数据是否为空 如果为空 则弹出提示  
            //通常这里不需要(用于异常提示)  
            if (FrmLogin.Uid == "" || FrmLogin.Situation == "" || FrmLogin.Time.ToString() == "")  
            {  
                MessageBox.Show("数据不能为空!");  
                return;  
            }  
            //向数据库里插入参数  
            SqlParameter[] param ={  
                                       new SqlParameter("@User_Name",FrmLogin.Uid),  
                                       new SqlParameter("@Situation",FrmLogin.Situation),  
                                       new SqlParameter("@Time",FrmLogin.Time)  
                                   };  
            //使用sql连接指令 获取connStr的连接字符串  
            SqlConnection conn = new SqlConnection(connStr);  
            //使用cmd指令来装载 sql查询语句和conn连接指令  
            SqlCommand cmd = new SqlCommand(sql, conn);  
            //打开数据库  
            conn.Open();  
            //向cmd中添加所有参数  
            cmd.Parameters.AddRange(param);  
            //将cmd的执行查询获得的整数值赋给n  
            int n = cmd.ExecuteNonQuery();  
            //关闭数据库  
            conn.Close();  
        }  
四、退出登陆
//写一个获取当前系统时间的方法  
        public void GetExitTime()  
        {  
            //获取当前退出系统的时间  
            FrmLogin.Time = DateTime.Now;  
            //将当前"退出"字符串赋给登录窗体的全局变量Situation  
            FrmLogin.Situation = "退出";  
        }  
        private void btnExit_Click(object sender, EventArgs e)  
        {  
            //调用获取当前退出时间的方法  
            GetExitTime();  
            //将当前用户的登录信息添加到DataGridView里面  
            AddLog();  
            //直接退出系统  
            Application.Exit();  
        }  

你可能感兴趣的:(C#WinForm,C#)