0%

C#简易电影记录管理系统:开发五[用户注册]

本期概述

前几期为了方便登录系统,我们手动的在数据库里添加了用户名和密码,并没有实现在系统中进行用户注册.那么,这一期我们一起来实现下用户注册功能.

原理

原理很简单, 首先判断用户名是否已经存在于数据库中, 执行sql select语句将获取文本框中的用户名,然后通过SqlDataReader对数据库里的数据进行逐行读取并判断数据库中是否已存在相同的用户名.如果存在,则禁止注册;如果不存在,则对用户输入的密码以及密码确认分别进行判断,如果都满足条件(2次密码输入相同等),则执行SQL插入语句,将注册的用户名和密码插入数据库.

首先,我们需要在 系统主界面 增加一个跳转到 用户注册窗体 的按钮.

用户注册name: tsbRegistration

img

在该按钮的单击事件下 添加如下代码(用于窗体跳转).

1
2
3
4
5
6
7
8
9
private void tsbRegistration_Click(object sender, EventArgs e)
{
//new一个 用户注册窗体对象
FrmRegistration registration = new FrmRegistration();
//显示 用户注册窗体
registration.Show();
//隐藏当前窗体(主界面)
this.Hide();
}

之后,我们来设计下 用户注册 窗体

新建一个用户注册窗体 FrmRegistration.cs 界面设计如下

文本框 用户名name:txtUid 密码name:txtPwd 密码确认name:txtPwdConfirm

文本框右边的用户密码输入提示label框 用户名提示name:lblUidMsg 密码提示name:lblPwdMsg 密码确认name:lblPwdConfirmMsg

按钮 注册name:btnOK 返回name:btnBack

img

用户注册窗体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;

/*******************************************************

** 作者: SoFlash - 博客园 http://www.cnblogs.com/longwu

** 描述: FrmRegistration.cs 用户注册窗体

******************************************************/

namespace 电影记录管理系统
{
public partial class FrmRegistration : Form
{
public FrmRegistration()
{
InitializeComponent();
}
//连接字符串, 获取配置文件App.config里的字符串"str"
static string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;

private void btnOK_Click(object sender, EventArgs e)
{
//否则判断 当前用户名在数据库中是否存在
//使用sql select语句 按 用户文本框中的文本内容 来选取数据库中的用户名
string sql = "select MUserName from MovieAccount where MUserName='" + txtUid.Text + "'";
//新建SQL 数据库连接
SqlConnection conn = new SqlConnection(connStr);
//使用SQL cmd指令来装载 sql查询语句和数据库连接
SqlCommand cmd = new SqlCommand(sql, conn);
//执行操作前 需要打开数据库连接
conn.Open();
//使用SqlDataReader 对cmd 执行读取指令的数据 进行逐行读取
SqlDataReader sdr = cmd.ExecuteReader();
//如果读到数据了,说明 数据库中已存在 文本框中输入的用户名
if (sdr.Read())
{
//如果读到相同的用户名 则提示 用户名已存在
lblUidMsg.Text = "用户名已存在,请重新输入!";
return;
}

//如果用户名不存在 则判断下用户名密码是否为空
else if (txtUid.Text.Trim() == "")
{

//如果用户名 不为空, 将提示语句赋给label框 并在窗体上
lblUidMsg.Text = "用户名不能为空!";

}

//判断密码是否为空
else if (txtPwd.Text.Trim() == "")
{
//同理
lblPwdMsg.Text = "密码不能为空!";
//同时清除 用户名 提示框的内容
lblUidMsg.Text = "";

}
//判断再次输入密码是否为空
else if (txtPwdConfirm.Text.Trim() == "")
{
//同理
lblPwdConfirmMsg.Text = "验证密码不能为空!";
//同时清除 用户名 提示框 和 第一次密码输入提示框的内容
lblUidMsg.Text = "";
lblPwdMsg.Text = "";

}
//判断2次密码输入是否相同
else if (txtPwd.Text.Trim() != txtPwdConfirm.Text.Trim())
{
//同理
lblPwdMsg.Text = "2次密码必须一样!";
lblPwdConfirmMsg.Text = "请重新输入!";
return;
}
else //如果通过上述检测,则进行账户 密码插入数据库操作
{
//清空上面所有label框的提示
lblUidMsg.Text = "";
lblPwdMsg.Text = "";
lblPwdConfirmMsg.Text = "";

//如果 用户名是否存在于 数据库判断完了 则关闭数据库连接(节省资源)
conn.Close();

//使用sql 数据插入语句
string sqlInsert = "insert into MovieAccount(MUserName,MUserPwd) values(@MUserName,@MUserPwd)";
//使用1个SQL参数数组 来装载 需要插入的数据
SqlParameter[] param = {
new SqlParameter("@MUserName",txtUid.Text),
new SqlParameter("@MUserPwd",txtPwd.Text)
};
//使用 SQL数据库连接
SqlConnection connInsert = new SqlConnection(connStr);
//使用SQL command 指令来装载 SQL查询语句和SQL数据库连接
SqlCommand cmdInsert = new SqlCommand(sqlInsert, connInsert);
//再次打开数据连接 执行插入数据操作
connInsert.Open();
//使用cmd指令 添加所有参数
cmdInsert.Parameters.AddRange(param);
//定义一个整型变量 用于接受 cmd的 执行查询指令(cmd的ExcuteNonQuery()方法返回值为一个整型)
int n = cmdInsert.ExecuteNonQuery();
//判断该值是否为空, 如果为空, 说明插入数据失败
if (n == 0)
{
MessageBox.Show("注册失败!,请重新输入");
//插入失败就不再继续运行,返回
return;
}
else
{
//否则 数据插入成功
MessageBox.Show("注册成功!");
}
//关闭数据库连接
connInsert.Close();
}

}

//返回主窗体
private void btnBack_Click(object sender, EventArgs e)
{
//new一个主窗体对象
FrmMain main = new FrmMain();
//跳转到主窗体
main.Show();
//隐藏当前窗体
this.Hide();
}
}
}

代码写好了,我们来测试下 用户注册功能.

img

img

img

img

img

img

img

这样,我们的用户注册功能就完成了. 下一期,我们将共同学习下信息管理系统中最常见的功能-数据搜索.

附上源代码

MovieRecordManagementSystem05.zip

转自:https://www.cnblogs.com/longwu/archive/2011/10/22/2220937.html