登录界面(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 //定义一个全局变量UserType
33 //用于获取用户权限
34 public static string UserType;
35
36 //登录按钮
37 private void btnLogin_Click(object sender, EventArgs e)
38 {
39 //连接数据库语句
40 using(SqlConnection con=new SqlConnection(connStr))
41 {
42 //操作数据库语句
43 string sql = "select vuserpwd,usertype from vipaccount where vUserName='" + txtName.Text + "'";
44 using(SqlCommand cmd=new SqlCommand(sql,con))
45 {
46 //打开数据库
47 con.Open();
48 //使用 SqlDataReader 来 读取数据库
49 using (SqlDataReader sdr = cmd.ExecuteReader())
50 {
51 //SqlDataReader 在数据库中为 从第1条数据开始 一条一条往下读
52 if (sdr.Read()) //如果读取账户成功(文本框中的用户名在数据库中存在)
53 {
54 //则将第1条 密码 赋给 字符串pwd ,并且依次往后读取 所有的密码
55 //Trim()方法为移除字符串前后的空白
56 string pwd = sdr.GetString(0).Trim();
57 //读取器sdr获取了2列数据 第1列为密码 第2列 即索引为1的是用户类型
58 string uType = sdr.GetString(1).Trim() ;
59 //如果 文本框中输入的密码 ==数据库中的密码
60 if (pwd == txtPwd.Text)
61 {
62 uid = txtName.Text;
63 time = DateTime.Now;
64 situation = "登录";
65 //将登录成功的用户类型 赋给全局变量UserType
66 //用于获取当前登录 用户的类型
67 UserType = uType;
68 //说明在该账户下 密码正确, 系统登录成功
69 MessageBox.Show("登录成功,正在进入主界面......");
70 //***************新增代码***************
71 VIPLog vl = new VIPLog();
72 //添加当前的用户信息到日志中
73 vl.AddMsg();
74 //退出程序
75 //创建新的会员资料管理界面窗体并显示,同时把登录界面隐藏
76 //VIPManager vm=new VIPManager();
77 VIPMain vmain = new VIPMain();
78 vmain.Show();
79 this.Hide();
80 //***************新增代码***************
81 }
82 else
83 {
84 //密码错误
85 MessageBox.Show("密码错误,请重新输入");
86 txtPwd.Text = "";
87 }
88 }
89 else
90 {
91 //用户名错误
92 MessageBox.Show("用户名错误,请重新输入!");
93 txtName.Text = "";
94 }
95 }
96 }
97 }
98 }
99
100 //设置快捷键
101 private void VIPLogin_KeyDown(object sender, KeyEventArgs e)
102 {
103 //如果按下ESC键
104 if (e.KeyCode == Keys.Escape)
105 {
106 //关闭窗体
107 this.Close();
108 }
109 //如果按下F5键
110 else if (e.KeyCode == Keys.F5)
111 {
112 //调用登录按钮单击事件
113 this.btnLogin_Click(null,null);
114 }
115 }
116
117 //关闭
118 private void btnClose_Click(object sender, EventArgs e)
119 {
120 //彻底的退出
121 System.Environment.Exit(0);
122 }
123
124 //当登录窗体为活动窗体时
125 private void VIPLogin_Activated(object sender, EventArgs e)
126 {
127 //设置文本框txtName获得焦点
128 txtName.Focus();
129 }
130
131 //获取文本框txtName的快捷键
132 private void txtName_KeyUp(object sender, KeyEventArgs e)
133 {
134 if (e.KeyCode == Keys.Enter)
135 {
136 txtPwd.Focus();
137 txtPwd.SelectAll();
138 }
139 }
140
141 //获取文本框txtPwd的快捷键
142 private void txtPwd_KeyUp(object sender, KeyEventArgs e)
143 {
144 if (e.KeyCode == Keys.Enter)
145 {
146 btnLogin_Click(null, null);
147 }
148 }
149 }
150 }
主界面(VIPMain.cs)新增一个Label控件:
详细代码如下:
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
11 namespace 会员管理系统
12 {
13 public partial class VIPMain : Form
14 {
15 public VIPMain()
16 {
17 InitializeComponent();
18 }
19
20 private void btnVIPManager_Click(object sender, EventArgs e)
21 {
22 VIPManager vm = new VIPManager();
23 vm.Show();
24 this.Hide();
25 }
26
27 private void btnVIPLogin_Click(object sender, EventArgs e)
28 {
29 VIPLog vipl = new VIPLog();
30 vipl.GetExitTime();
31 vipl.AddMsg();
32 VIPLogin vp = new VIPLogin();
33 vp.Show();
34 this.Hide();
35 }
36
37 private void btnClose_Click(object sender, EventArgs e)
38 {
39 VIPLog vipl = new VIPLog();
40 vipl.GetExitTime();
41 vipl.AddMsg();
42 //彻底的退出
43 System.Environment.Exit(0);
44 }
45
46 private void btnPwdChange_Click(object sender, EventArgs e)
47 {
48 VIPPwdChange vpc = new VIPPwdChange();
49 vpc.Show();
50 this.Hide();
51 }
52
53 private void VIPMain_Load(object sender, EventArgs e)
54 {
55 lblCurrentUser.Text = "当前登录用户为:"+VIPLogin.uid+ " 用户类型:" + VIPLogin.UserType + " 登录时间为:"+VIPLogin.time;
56 //给当前用户打招呼
57 //这里通过获取当前用户电脑上的时间 以及判断登录用户的类型 来给不同类型的用户打招呼
58 // 定义整型变量 intTime 来获取 用户电脑上的具体小时数 然后在如下进行判断
59 int inttime = VIPLogin.time.Hour;
60 //获取VIPLogin窗体的全局变量 UserType 用户类型, 用于给不同类型的用户打招呼
61 string uType = VIPLogin.UserType;
62 //在凌晨0-6点的时候
63 if (inttime >= 0 && inttime < 6)
64 {
65 if (uType == "Administrator")
66 {
67 lblSayHi.Text = "尊敬的"+ VIPLogin.uid + "您好,现在已夜深,请注意休息!";
68 }
69 else if (uType == "NormalUser")
70 {
71 lblSayHi.Text = "亲爱的" + VIPLogin.uid + "您好,现在已夜深,请注意休息!";
72 }
73 }
74 //早上6点-中午12点的时候
75 else if (inttime >= 6 && inttime < 12)
76 {
77 if (uType == "Administrator")
78 {
79 lblSayHi.Text = "尊敬的" + VIPLogin.uid + "早上好!";
80 }
81 else if (uType == "NormalUser")
82 {
83 lblSayHi.Text = "亲爱的" + VIPLogin.uid + "早上好!";
84 }
85 }
86 //中午12点-下午6点的时候
87 else if (inttime >= 12 && inttime < 18)
88 {
89 if (uType == "Administrator")
90 {
91 lblSayHi.Text = "尊敬的" + VIPLogin.uid + "下午好!";
92 }
93 else if (uType == "NormalUser")
94 {
95 lblSayHi.Text = "亲爱的" + VIPLogin.uid + "下午好!";
96 }
97 }
98 //晚上
99 else if (inttime >= 18 && inttime < 24)
100 {
101 if (uType == "Administrator")
102 {
103 lblSayHi.Text = "尊敬的" + VIPLogin.uid + "晚上好!";
104 }
105 else if (uType == "NormalUser")
106 {
107 lblSayHi.Text = "亲爱的" + VIPLogin.uid + "晚上好!";
108 }
109 }
110 //否则 默认为
111 else
112 {
113 lblSayHi.Text = "欢迎使用会员管理系统!";
114 }
115 //判断用户类型 并给用户设置功能权限
116 if (uType == "NormalUser")
117 {
118 btnRegistration.Enabled = false;
119 btnLog.Enabled = false;
120 }
121 }
122
123 private void btnLog_Click(object sender, EventArgs e)
124 {
125 VIPLog vl=new VIPLog();
126 vl.Show();
127 this.Hide();
128 }
129
130 private void btnRegistration_Click(object sender, EventArgs e)
131 {
132 VIPRegistration vrn = new VIPRegistration();
133 vrn.Show();
134 this.Hide();
135 }
136 }
137 }
会员资料管理(VIPManager.cs)详细代码:
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Configuration;
5 using System.Data;
6 using System.Data.SqlClient;
7 using System.Drawing;
8 using System.Linq;
9 using System.Text;
10 using System.Threading.Tasks;
11 using System.Windows.Forms;
12
13 namespace 会员管理系统
14 {
15 public partial class VIPManager : Form
16 {
17 public VIPManager()
18 {
19 InitializeComponent();
20 }
21
22 //连接字符串 获取配置文件里的连接路径,多次需要调用,放在外面方便
23 static string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
24 //窗体运行自动加载
25 private void VipManager_Load(object sender, EventArgs e)
26 {
27 //刷新数据
28 Refresh();
29 cmbforfieldSelecting.Text = "全局搜索";
30 cmbforfieldSelecting.Items.Add("全局搜索");
31 cmbforfieldSelecting.Items.Add("编号");
32 cmbforfieldSelecting.Items.Add("名字");
33 cmbforfieldSelecting.Items.Add("性别");
34 cmbforfieldSelecting.Items.Add("年龄");
35 cmbforfieldSelecting.Items.Add("地址");
36 cmbforfieldSelecting.Items.Add("电话");
37 //添加对用户 类型的判断 用来设置功能按钮的使用权限
38 if (VIPLogin.UserType == "NormalUser")
39 {
40 btnAdd.Enabled = false;
41 btnDelete.Enabled = false;
42 btnSave.Enabled = false;
43 }
44 }
45
46 //写一个刷新数据的方法(跟查看数据一样)
47 public void Refresh(bool isAdded = false)
48 {
49 //查询数据库字符串
50 string sql = String.Format("select vId '{0}',vName '{1}',vGender '{2}',vAge '{3}',vAddress '{4}',vPhone '{5}' from VipInformation", "编号", "名字", "性别", "年龄", "地址", "电话");
51 //连接数据库对象
52 SqlConnection conn = new SqlConnection(connStr);
53 //操作数据库对象
54 SqlCommand cmd = new SqlCommand(sql, conn);
55 //创建表对象
56 System.Data.DataTable dt = new System.Data.DataTable();
57 //创建数据库填充操作对象(语句)
58 SqlDataAdapter sda = new SqlDataAdapter(cmd);
59 //把数据填充进dt表中
60 sda.Fill(dt);
61 //指定dgvManager控件的数据源:dt
62 dgvManager.DataSource = dt;
63
64 //if (isAdded)
65 //{
66 // if (dt.Rows.Count > 0)
67 // dgvManager.Rows[0].Selected = false;
68 // dgvManager.Rows[dt.Rows.Count - 1].Selected = true;
69 //}
70 }
71
72 //刷新数据界面
73 private void btnView_Click(object sender, EventArgs e)
74 {
75 //刷新数据
76 Refresh();
77 }
78
79 //添加数据
80 private void btnAdd_Click(object sender, EventArgs e)
81 {
82 //判断文本框是否为空,提示数据完整性
83 if (txtName.Text == "" || txtGender.Text == "" || txtAge.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
84 {
85 MessageBox.Show("数据不能为空,请填写齐全");
86 return;
87 }
88 //插入数据库字符串
89 string sql = string.Format("insert into VipInformation values('{0}','{1}',{2},'{3}','{4}')",txtName.Text.Trim(),txtGender.Text.Trim(),txtAge.Text.Trim(),txtAddress.Text.Trim(),txtPhone.Text.Trim());
90 //连接数据库对象
91 SqlConnection conn = new SqlConnection(connStr);
92 //操作数据库对象
93 SqlCommand cmd = new SqlCommand(sql, conn);
94 //创建表对象
95 System.Data.DataTable dt = new DataTable();
96 //创建数据库填充操作对象(语句)
97 SqlDataAdapter sda = new SqlDataAdapter(cmd);
98 //把数据填充进dt表中
99 sda.Fill(dt);
100 //指定dgvManager控件的数据源:dt
101 dgvManager.DataSource = dt;
102 //刷新数据
103 Refresh();
104 }
105
106 //删除数据
107 private void btnDelete_Click(object sender, EventArgs e)
108 {
109 //使用sql删除语句,where 1=1 就是没有条件,等于全部数据删除
110 string sql = "delete from VipInformation where 1=1";
111 //如果选中某行则执行
112 if (dgvManager.CurrentRow.Selected)
113 {
114 sql = sql + " and vid=" + Convert.ToInt32(dgvManager.CurrentRow.Cells[0].Value.ToString());
115 }
116 int n = 0;
117 //创建连接数据库对象
118 SqlConnection conn = new SqlConnection(connStr);
119 //创建操作数据库对象
120 SqlCommand cmd = new SqlCommand(sql, conn);
121 //打开数据库
122 conn.Open();
123 //取得ExecuteNonQuery返回的受影响行数,无影响则为0
124 n = cmd.ExecuteNonQuery();
125 if (n == 0)
126 {
127 MessageBox.Show("删除操作失败!不存在的ID");
128 conn.Close();
129 return;
130 }
131 else if (n > 0)
132 {
133 MessageBox.Show("删除操作成功!");
134 }
135 //关闭数据库连接
136 conn.Close();
137 //刷新数据界面
138 Refresh();
139 }
140
141 //修改数据
142 private void btnSave_Click(object sender, EventArgs e)
143 {
144 if (txtName.Text == "" || txtGender.Text == "" || txtAge.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
145 {
146 MessageBox.Show("所提供的数据不完整,请填写完整数据");
147 return;
148 }
149 int n = 0;
150 //更新SQL语句
151 string sqlupdate = "update VipInformation set vName='" + txtName.Text + "',vgender='" + txtGender.Text + "',vage=" + txtAge.Text + ",vaddress='" + txtAddress.Text + "',vphone='" + txtPhone.Text + "' where vid='" + dgvManager.CurrentRow.Cells[0].Value.ToString() + "'";
152 SqlConnection conn = new SqlConnection(connStr);
153 SqlCommand cmd = new SqlCommand(sqlupdate, conn);
154 conn.Open();
155 n = cmd.ExecuteNonQuery();
156 if (n == 0)
157 {
158 MessageBox.Show("修改操作失败!");
159 conn.Close();
160 return;
161 }
162 else if (n > 0)
163 {
164 MessageBox.Show("修改操作成功!");
165 }
166 conn.Close();
167 Refresh();
168 }
169
170 //点击dgvManager在文本框上显示
171 private void dgvManager_CellContentClick(object sender, DataGridViewCellEventArgs e)
172 {
173 txtName.Text = dgvManager.CurrentRow.Cells[1].Value.ToString();
174 txtGender.Text = dgvManager.CurrentRow.Cells[2].Value.ToString();
175 txtAge.Text = dgvManager.CurrentRow.Cells[3].Value.ToString();
176 txtAddress.Text = dgvManager.CurrentRow.Cells[4].Value.ToString();
177 txtPhone.Text = dgvManager.CurrentRow.Cells[5].Value.ToString();
178 }
179
180 string selectedValue;
181 //事件索引改变时触发
182 private void cmbforfieldSelecting_SelectedIndexChanged(object sender, EventArgs e)
183 {
184 string strSelected = cmbforfieldSelecting.Text;
185 switch (strSelected)
186 {
187 case "全局搜索":
188 selectedValue = "全局搜索";
189 break;
190 case "编号":
191 selectedValue="vid";
192 break;
193 case "名字":
194 selectedValue = "vname";
195 break;
196 case "性别":
197 selectedValue = "vgender";
198 break;
199 case "年龄":
200 selectedValue = "vage";
201 break;
202 case "地址":
203 selectedValue = "vaddress";
204 break;
205 case "电话":
206 selectedValue = "vphone";
207 break;
208 default:
209 selectedValue = "全局搜索";
210 break;
211 }
212 }
213
214 private void txtDataforQuery_TextChanged(object sender, EventArgs e)
215 {
216 string sql = "";
217 if (txtDataforQuery.Text.Trim() == "")
218 {
219 //执行查询语句
220 sql = "select * from VipInformation";
221 }
222 else if (cmbforfieldSelecting.Text.Trim() == "全局搜索" || selectedValue == "全局搜索")
223 {
224 //全字段搜索
225 sql = "select * from VipInformation where vName like '%" + txtDataforQuery.Text.Trim() + "%' or vgender like '%" + txtDataforQuery.Text.Trim() + "%' or vage like '%" + txtDataforQuery.Text.Trim() + "%' or vaddress like '%" + txtDataforQuery.Text.Trim() + "%' or vphone like '%" + txtDataforQuery.Text.Trim() + "%'";
226 }
227 else if (selectedValue == "vid" || selectedValue == "vname" || selectedValue == "vgender" || selectedValue == "vage" || selectedValue == "vaddress" || selectedValue == "vphone")
228 {
229 //通过相应的字段进行搜索
230 sql = "select * from VipInformation where " + selectedValue + " like '%" + txtDataforQuery.Text.Trim() + "%'";
231 }
232
233 SqlConnection conn = new SqlConnection(connStr);
234 SqlCommand cmd = new SqlCommand(sql, conn);
235 conn.Open();
236 DataTable dt = new DataTable();
237 SqlDataAdapter sda = new SqlDataAdapter(cmd);
238 sda.Fill(dt);
239 dgvManager.DataSource = dt;
240 conn.Close();
241 }
242
243 private void btnBack_Click(object sender, EventArgs e)
244 {
245 VIPMain vmain = new VIPMain();
246 vmain.Show();
247 this.Hide();
248 }
249
250 private void btnClose_Click(object sender, EventArgs e)
251 {
252 VIPLog vpl = new VIPLog();
253 vpl.GetExitTime();
254 vpl.AddMsg();
255 //彻底的退出
256 System.Environment.Exit(0);
257 }
258
259
260 }
261 }
用户注册界面(VIPRegistration.cs)新增控件,如图:
详细代码:
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 VIPRegistration : Form
16 {
17 public VIPRegistration()
18 {
19 InitializeComponent();
20 }
21
22
23 //提交按钮
24 private void btnOK_Click(object sender, EventArgs e)
25 {
26
27 string connstr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
28 SqlConnection conn = new SqlConnection(connstr);
29 string sql = string.Format("select vusername from VipAccount where vUserName='{0}' ",txtName.Text);
30 SqlCommand cmd = new SqlCommand(sql, conn);
31 conn.Open();
32 SqlDataReader sda=cmd.ExecuteReader();
33
34 //new一个 uType 来获取 radiobutton 点击事件下 触发的用户类型赋值
35 string uType = "";
36 if (rdoAdministrator.Checked)
37 {
38 uType = "Administrator";
39 }
40 else if (rdoNormalUser.Checked)
41 {
42 uType = "NormalUser";
43 }
44 else
45 {
46 uType = "NormalUser";
47 }
48
49 //---------------------------
50 if (txtName.Text.Trim() == "")
51 {
52 lblName.Text="用户名不能为空";
53 return;
54 }
55 else if (txtPwd.Text.Trim() == ""|| txtPwdConfirm.Text.Trim()=="")
56 {
57 lblPwd.Text = "密码不能为空";
58 return;
59 }
60 else if (txtPwdConfirm.Text.Trim()!= txtPwd.Text.Trim())
61 {
62 lblPwdConfirm.Text = "两次密码输入不同,请确认后再输";
63 return;
64 }
65 else if (sda.Read())
66 {
67 lblName.Text = "用户名已存在,请重新输入";
68 return;
69 }
70 else
71 {
72 conn.Close();
73 SqlConnection conninsert = new SqlConnection(connstr);
74 //string insertsql = string.Format("insert into VipAccount(vUserName,vUserPwd) values('{0}','{1}')",txtName.Text,txtPwd.Text);
75 string insertsql = "insert into VipAccount(vUserName,vUserPwd,UserType) values(@vUserName,@vUserPwd,@UserType) ";
76 //使用1个SQL参数数组 来装载 需要插入的数据
77 SqlParameter[] param = {
78 new SqlParameter("@vUserName",txtName.Text),
79 new SqlParameter("@vUserPwd",txtPwd.Text),
80 new SqlParameter("@UserType",uType)
81 };
82
83 SqlCommand cmdinsert = new SqlCommand(insertsql, conninsert);
84 conninsert.Open();
85 cmdinsert.Parameters.AddRange(param);
86 int n = cmdinsert.ExecuteNonQuery();
87 if (n == 0)
88 {
89 MessageBox.Show("注册失败,请重新输入");
90 }
91 else
92 {
93 MessageBox.Show("注册成功");
94 }
95 conninsert.Close();
96
97 }
98 //conn.Close();
99 }
100
101 //返回主菜单
102 private void btnBack_Click(object sender, EventArgs e)
103 {
104 VIPMain vm = new VIPMain();
105 vm.Show();
106 this.Hide();
107 }
108
109 private void VIPRegistration_Load(object sender, EventArgs e)
110 {
111 lblName.Text = "";
112 lblPwd.Text = "";
113 lblPwdConfirm.Text = "";
114 }
115
116 }
117 }