.net网站内容管理系统(MicrosoftVisualStudioWindows窗体应用(.NETFramework)学习目标)
优采云 发布时间: 2022-02-03 00:28.net网站内容管理系统(MicrosoftVisualStudioWindows窗体应用(.NETFramework)学习目标)
(学习目标:用.net形式做一个*敏*感*词*管理系统,可以满足*敏*感*词*、班级信息、年级信息的增删改查。)
Day 2:登录界面的实现
任务:在Microsoft Visual Studio 中新建一个Windows Forms 应用项目并实现登录界面。
1.打开 Microsoft Visual Studio 并创建一个新的表单应用程序。
选择 Windows 窗体应用程序 (.NET Framework),然后单击下一步
在此处将项目名称命名为 WinStudent,然后单击 Create。
2.登录界面布局。
第一步:在属性面板中将登录界面名称更改为frmLogin。
第二步:MaximizeBox(是否最大化)改为True。
第 3 步:将文本(窗口标题栏)更改为“登录界面”。
第4步:将两个Button(登录按钮、注销按钮)、三个Label和两个TextBox(帐户、密码)拖到表单中。
第五步:将按钮拖到上图位置,完成布局,将其Text属性改为上图样式。账号文本框的Name属性为:txtUserName,密码文本框的Name属性为:txtUserPwd,登录按钮的Name属性为:btnLogin,退出按钮的Name属性为:btnExit,颜色为BacaColor属性可以随意更改为您喜欢的颜色。
3.函数实现。
第一步:双击登录按钮,进入登录按钮事件。
1 private void btnLogin_Click(object sender, EventArgs e)
2 {
3 //步骤1:获取用户的输入信息
4 string uName = txtUserName.Text.Trim();
5 string uPwd = txtUserPwd.Text.Trim();
6 //步骤2:判断是否为空
7 if (string.IsNullOrEmpty(uName))
8 {
9 MessageBox.Show("请输入账号", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
10 txtUserName.Focus();
11 return;
12 }
13 if (string.IsNullOrEmpty(uPwd))
14 {
15 MessageBox.Show("请输入密码", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
16 txtUserPwd.Focus();
17 return;
18 }
19
20
21 }
22
23
第二步:先用两个变量分别获取账号和密码文本框中的值。然后判断值是否为空,代码如上。
1 private void btnLogin_Click(object sender, EventArgs e)
2 {
3 //步骤1:获取用户的输入信息
4 string uName = txtUserName.Text.Trim();
5 string uPwd = txtUserPwd.Text.Trim();
6 //步骤2:判断是否为空
7 if (string.IsNullOrEmpty(uName))
8 {
9 MessageBox.Show("请输入账号", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
10 txtUserName.Focus();
11 return;
12 }
13 if (string.IsNullOrEmpty(uPwd))
14 {
15 MessageBox.Show("请输入密码", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
16 txtUserPwd.Focus();
17 return;
18 }
19 //步骤3:与数据库通信,检查输入与数据库中的数据是否一致
20
21
22 // 1.建立与数据库的通信
23 // 连接字符串
24 ///*string connString = "server=.;database=StudentNewDB;Integrated Security=true";//Windows 身份验证方法*/
25 string connString = "server=.;database=StudentNewDB;uid=sa;pwd=123456";//Server身份验证
26 Data Sorce Initial Catalog User ID Password
27 SqlConnection conn = new SqlConnection(connString);
28 2.写查询语句
29 string sql = "select count(1) from UserInfo where UserName = @UserName and UserPwd = @UserPwd";//参数化sql
30 添加参数
31 SqlParameter paraUName = new SqlParameter("@UserName",uName);
32 SqlParameter paraUPwd = new SqlParameter("@UserPwd", uPwd);
33 SqlParameter[] paras = {
34 new SqlParameter("@UserName",uName),
35 new SqlParameter("@UserPwd", uPwd)
36 };
37 3.创建Command对象
38 SqlCommand cmd = new SqlCommand(sql, conn);
39 // cmd.CommandType = CommandType.StoredProcedure;如果执行存储过程就要写这个
40 cmd.Parameters.Clear();
41 cmd.Parameters.AddRange(paras);
42 cmd.Parameters.Add(paraUName);
43 cmd.Parameters.Add(paraUPwd);
44 4.打开连接
45 conn.Open();//最晚打开,最早关闭
46 //5.执行命令 要求状态为opend
47 object o = cmd.ExecuteScalar();//执行查询,返回结果第一行第一列的值,忽略其他行或列
48 //6.关闭连接
49 conn.Close();
50
51
52
53
54 }
55
56
第三步:连接数据库,执行sql查询语句。sql语句最好采用参数化的形式避免注入,然后创建Command对象并传递参数,最后打开连接,使用对象类型值接收查询结果,接收结束。只需关闭连接。
1private void btnLogin_Click(object sender, EventArgs e)
2 {
3 //步骤1:获取用户的输入信息
4 string uName = txtUserName.Text.Trim();
5 string uPwd = txtUserPwd.Text.Trim();
6 //步骤2:判断是否为空
7 if (string.IsNullOrEmpty(uName))
8 {
9 MessageBox.Show("请输入账号", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
10 txtUserName.Focus();
11 return;
12 }
13 if (string.IsNullOrEmpty(uPwd))
14 {
15 MessageBox.Show("请输入密码", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
16 txtUserPwd.Focus();
17 return;
18 }
19 //步骤3:与数据库通信,检查输入与数据库中的数据是否一致
20
21
22 // 1.建立与数据库的通信
23 // 连接字符串
24 ///*string connString = "server=.;database=StudentNewDB;Integrated Security=true";//Windows 身份验证方法*/
25 string connString = "server=.;database=StudentNewDB;uid=sa;pwd=123456";//Server身份验证
26 Data Sorce Initial Catalog User ID Password
27 SqlConnection conn = new SqlConnection(connString);
28 2.写查询语句
29 string sql = "select count(1) from UserInfo where UserName = @UserName and UserPwd = @UserPwd";//参数化sql
30 添加参数
31 SqlParameter[] paras = {
32 new SqlParameter("@UserName",uName),
33 new SqlParameter("@UserPwd", uPwd)
34 };
35 3.创建Command对象
36 SqlCommand cmd = new SqlCommand(sql, conn);
37 // cmd.CommandType = CommandType.StoredProcedure;如果执行存储过程就要写这个
38 cmd.Parameters.Clear();
39 cmd.Parameters.AddRange(paras);
40 4.打开连接
41 conn.Open();//最晚打开,最早关闭
42 //5.执行命令 要求状态为opend
43 object o = cmd.ExecuteScalar();//执行查询,返回结果第一行第一列的值,忽略其他行或列
44 //6.关闭连接
45 conn.Close();
46 //步骤四:判断是否有这个用户信息。
47 if (o == null || o == DBNull.Value || ((int)o) == 0)//如果返回值不为空说明该账户存在,如果为空说明该用户不存在。
48 {
49 MessageBox.Show("登录账号或密码有错,请检查!", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
50 txtUserName.Focus();
51 return;
52 }
53 else
54 {
55
56 MessageBox.Show("登录成功", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
57 //转到主页面
58 FrmMain fmain = new FrmMain();
59 fmain.Show();
60 this.Hide();
61
62 }
63
64
65
66 }
67
68
第四步:取出返回值进行判断,如果不为空则表示该用户存在于数据库中,如果为空则表示该用户不存在于数据库中,并分别给出相应的提示。
至此登录按钮已经实现。
1 private void btnExit_Click(object sender, EventArgs e)
2 {
3 this.Close();
4 }
5
6
第五步:双击表单上的退出按钮,进入退出事件,编写退出代码。
还实现了退出功能。
4.测试。
第一步:在数据库中创建两个用户的登录信息。
第 2 步:单击开始运行表单。
第三步:故意输入错误密码测试。
第四步:输入正确的账号密码,点击登录,登录成功。
第五步:退出按键测试,发现没有问题。
完成这一步后,登录界面就差不多完成了。
总结:
1.所有的按钮和表单都应该尽量标准的命名,否则容易造成混淆。
2.尽量以参数化形式编写SQL语句,避免注入。
3.完成后一定要测试,如果发现有问题,请进行更正。