码迷,mamicode.com
首页 > Windows程序 > 详细

C#_会员管理系统:开发四(日志查看)

时间:2016-04-24 06:25:31      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:

新建一个日志查看窗体:

技术分享

日志需要的登录时间和登录状态信息由用户刚登录程序时就提供,所以在登录窗体(VIPLogin.cs)中添加代码:

1         //定义一个全局变量 Uid;
2         //用于获取登录成功后的用户名
3         public static string uid;
4         //定义一个全局变量 time;
5         //用于获取用户登录时的时间
6         public static DateTime time;
7         //定义一个全局变量situation
8         //用于获取用户的登录状态
9         public static string situation;    
 1                             //如果 文本框中输入的密码 ==数据库中的密码
 2                             if (pwd == txtPwd.Text)
 3                             {
 4                                 uid = txtName.Text;
 5                                 time = DateTime.Now;
 6                                 situation = "登录";
 7                                 //说明在该账户下 密码正确, 系统登录成功
 8                                 MessageBox.Show("登录成功,正在进入主界面......");
 9                                 //***************新增代码***************
10                                 //创建新的会员资料管理界面窗体并显示,同时把登录界面隐藏
11                                 //VIPManager vm=new VIPManager();
12                                 VIPMain vmain = new VIPMain();
13                                 vmain.Show();
14                                 this.Hide();
15                                 //***************新增代码***************
16                             }

登录窗体(VIPLogin.cs)全部详细代码如下:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Configuration;
  5 using System.Data;
  6 using System.Drawing;
  7 using System.Linq;
  8 using System.Text;
  9 using System.Threading.Tasks;
 10 using System.Windows.Forms;
 11 using System.Data.SqlClient;
 12 
 13 namespace 会员管理系统
 14 {
 15     public partial class VIPLogin : Form
 16     {
 17         public VIPLogin()
 18         {
 19             InitializeComponent();
 20         }
 21         //用于连接配置文件App.config
 22         string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
 23         //定义一个全局变量 Uid;
 24         //用于获取登录成功后的用户名
 25         public static string uid;
 26         //定义一个全局变量 time;
 27         //用于获取用户登录时的时间
 28         public static DateTime time;
 29         //定义一个全局变量situation
 30         //用于获取用户的登录状态
 31         public static string situation;
 32 
 33         //登录按钮
 34         private void btnLogin_Click(object sender, EventArgs e)
 35         {
 36             //连接数据库语句
 37             using(SqlConnection con=new SqlConnection(connStr))
 38             {
 39                 //操作数据库语句
 40                 string sql = "select vuserpwd from vipaccount where vUserName=‘" + txtName.Text + "";
 41                 using(SqlCommand cmd=new SqlCommand(sql,con))
 42                 {
 43                     //打开数据库
 44                     con.Open();
 45                     //使用 SqlDataReader 来 读取数据库
 46                     using (SqlDataReader sdr = cmd.ExecuteReader())
 47                     {
 48                         //SqlDataReader 在数据库中为 从第1条数据开始 一条一条往下读
 49                         if (sdr.Read()) //如果读取账户成功(文本框中的用户名在数据库中存在)
 50                         {
 51                             //则将第1条 密码 赋给 字符串pwd  ,并且依次往后读取 所有的密码
 52                             //Trim()方法为移除字符串前后的空白
 53                             string pwd = sdr.GetString(0).Trim();
 54                             //如果 文本框中输入的密码 ==数据库中的密码
 55                             if (pwd == txtPwd.Text)
 56                             {
 57                                 uid = txtName.Text;
 58                                 time = DateTime.Now;
 59                                 situation = "登录";
 60                                 //说明在该账户下 密码正确, 系统登录成功
 61                                 MessageBox.Show("登录成功,正在进入主界面......");
 62                                 //***************新增代码***************
 63                                 //创建新的会员资料管理界面窗体并显示,同时把登录界面隐藏
 64                                 //VIPManager vm=new VIPManager();
 65                                 VIPMain vmain = new VIPMain();
 66                                 vmain.Show();
 67                                 this.Hide();
 68                                 //***************新增代码***************
 69                             }
 70                             else
 71                             {
 72                                 //密码错误
 73                                 MessageBox.Show("密码错误,请重新输入");
 74                                 txtPwd.Text = "";
 75                             }
 76                         }
 77                         else
 78                         {
 79                             //用户名错误
 80                             MessageBox.Show("用户名错误,请重新输入!");
 81                             txtName.Text = "";
 82                         }
 83                     }
 84                 }
 85             }
 86         }
 87         
 88         //设置快捷键
 89         private void VIPLogin_KeyDown(object sender, KeyEventArgs e)
 90         {
 91             //如果按下ESC键
 92             if (e.KeyCode == Keys.Escape)
 93             {
 94                 //关闭窗体
 95                 this.Close();
 96             }
 97             //如果按下F5键
 98             else if (e.KeyCode == Keys.F5)
 99             {
100                 //调用登录按钮单击事件
101                 this.btnLogin_Click(null,null);
102             }
103         }
104 
105         //关闭
106         private void btnClose_Click(object sender, EventArgs e)
107         {
108             //彻底的退出
109             System.Environment.Exit(0);
110         }
111 
112         //当登录窗体为活动窗体时
113         private void VIPLogin_Activated(object sender, EventArgs e)
114         {
115             //设置文本框txtName获得焦点
116             txtName.Focus();
117         }
118 
119         //获取文本框txtName的快捷键
120         private void txtName_KeyUp(object sender, KeyEventArgs e)
121         {
122             if (e.KeyCode == Keys.Enter)
123             {
124                 txtPwd.Focus();
125                 txtPwd.SelectAll();
126             }
127         }
128 
129         //获取文本框txtPwd的快捷键
130         private void txtPwd_KeyUp(object sender, KeyEventArgs e)
131         {
132             if (e.KeyCode == Keys.Enter)
133             {
134                 btnLogin_Click(null, null);
135             }
136         }
137     }
138 }

然后为日志查看窗体(VIPLog)添加代码,详细代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 using System.Data.SqlClient;
11 using System.Configuration;
12 
13 namespace 会员管理系统
14 {
15     public partial class VIPLog : Form
16     {
17         public VIPLog()
18         {
19             InitializeComponent();
20         }
21         //连接数据库字符串多次调用,放在外面省代码量
22         string connstr = ConfigurationManager.ConnectionStrings["str"].ToString();
23 
24         private void btnClose_Click(object sender, EventArgs e)
25         {
26             //获取当前时间
27             GetExitTime();
28             //添加当前的用户信息到日志中
29             AddMsg();
30             //退出程序
31             System.Environment.Exit(0);
32         }
33 
34         private void btnBack_Click(object sender, EventArgs e)
35         {
36             VIPMain vm = new VIPMain();
37             vm.Show();
38             this.Hide();
39         }
40 
41         private void VIPLog_Load(object sender, EventArgs e)
42         {
43             AddMsg();
44             ShowMsg();
45         }
46         //写一个窗体加载自动从数据库获取数据并显示在datagridview的方法
47         public void ShowMsg()
48         {
49             //连接数据库对象
50             SqlConnection conn = new SqlConnection(connstr);
51             string sql = "select [id] 编号,vName 名字,situation 状态,[time] 登录或退出时间,vtype 权限 from [log]";
52             //操作数据库对象
53             SqlCommand cmd = new SqlCommand(sql, conn);
54             //创建表对象
55             DataTable dt = new DataTable();
56             //创建数据库填充操作对象(语句)
57             SqlDataAdapter sda = new SqlDataAdapter(cmd);
58             //把数据填充进dt表中
59             sda.Fill(dt);
60             //指定dgvManager控件的数据源:dt
61             dgvLog.DataSource = dt;
62         }
63         //写一个窗体加载(或者退出)自动添加当前用户登录信息进数据库的方法
64         public void AddMsg()
65         {
66             //连接数据库对象
67             SqlConnection conn = new SqlConnection(connstr);
68 
69             string sql = string.Format("insert into [Log](vName,situation,time) values(‘{0}‘,‘{1}‘,‘{2}‘)",VIPLogin.uid,VIPLogin.situation,VIPLogin.time);
70             //操作数据库对象
71             SqlCommand cmd = new SqlCommand(sql,conn);
72             //打开数据库连接
73             conn.Open();
74             //执行操作数据库对象并返回受影响条数
75             int n = cmd.ExecuteNonQuery();
76             //关闭数据库连接
77             conn.Close();
78         }
79         //写一个获取当前系统时间的方法(退出时间)
80         //退出时顺手修改登录状态
81         public void GetExitTime()
82         {
83             VIPLogin.time = DateTime.Now;
84             VIPLogin.situation = "退出";
85         }
86 
87     }
88 }

为了保证每个退出操作都能记录到数据库的日志表中,为每个退出按钮添加如下代码:

1             VIPLog vipl = new VIPLog();
2             vipl.GetExitTime();
3             vipl.AddMsg();    

运行效果:

技术分享

C#_会员管理系统:开发四(日志查看)

标签:

原文地址:http://www.cnblogs.com/start-from-scratch/p/5426257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!