续上登录界面内的注册功能界面。
3个textbox(长度最大修改MaxLength),6个label,1个RadioButton(这个功能暂时没有实现)
其实注册这个跟之前的登录代码差不多,也是连接sql进行查询,只是增加多一个添加sql而已。
还是先获取三个框框的内容,判断是不是空。
string name = nametextBox.Text.Trim();
string pwd = pwdtextBox.Text.Trim();
string adpwd =adpwdtextBox.Text.Trim();
if (String.IsNullOrEmpty(name) || String.IsNullOrEmpty(pwd) ||
String.IsNullOrEmpty(adpwd))
{
MessageBox.Show("用户名或密码不能为空!");
// return;
}
不是空之后进行下一步,查询注册的用户在数据库中是否有同名,然后检测两次密码是否一样:
SqlConnection conn = opdb.db();
conn.Open();
//连接数据库
string SELECT_sql = "SELECT name from login where name=@username";
SqlCommand SELECT_cmd = new SqlCommand(SELECT_sql, conn);
SELECT_cmd.Parameters.Add(new SqlParameter("@username", SqlDbType.NVarChar));
SELECT_cmd.Parameters["@username"].Value = name;
SqlDataReader check = SELECT_cmd.ExecuteReader();
/*
这个Read()是一个bool型,如果查询到没有,即为Flase。
*/
if (check.Read())
{
MessageBox.Show("用户名已存在!");
nametextBox.Text = "";
pwdtextBox.Text = "";
adpwdtextBox.Text = "";
nametextBox.Focus();
conn.Close();
}
else if (adpwd!=pwd)
{
MessageBox.Show("两次输入密码不一致,请重新输入!");
pwdtextBox.Text = "";
adpwdtextBox.Text = "";
return;
}
现在插入数据库拉:
check.Close();
string INSERT_sql = string.Format("INSERT INTO login VALUES ('{0}','{1}')"
, name, pwd);
SqlCommand INSERT_cmd = new SqlCommand(INSERT_sql, conn);
int count = INSERT_cmd.ExecuteNonQuery();
if (count > 0)
{
MessageBox.Show("注册成功!");
}
conn.Close();
login.ploginform.Visible = true;
this.Close();
注册成功的显示:
简单的注册界面就完成了,后期会加入管理员判断(是采用注册码还是什么方式还待商榷)、验证码。