private void RegConfirmPassword_Validating(object sender, CancelEventArgs e)
 {
     {
         if (this.RegConfirmPassword.Text != this.RegPassword.Text)
         {
             this.errorProvider1.SetError(this.RegConfirmPassword, "Password and Confirm must be the same");
             e.Cancel = true;
             RegPassword.Clear();
             RegConfirmPassword.Clear();
         }
         else
         {
             this.errorProvider1.SetError(this.RegConfirmPassword, "");
         }
     }
 }
        private void StdReg_Click(object sender, EventArgs e)
        {
            try
            {
                //从用户名文本框获取字符串给用户名变量赋值
                string userName = RegUserName.Text;

                //从密码文本框获取字符串给密码变量赋值
                string password = RegPassword.Text;

                //从姓名文本框获取字符串给姓名变量赋值
                string name = RegName.Text;

                //从班级文本框获取字符串给班级变量赋值
                string className = RegClass.Text;

                //从学号文本框获取字符串给学号变量赋值
                string cardID = RegCardID.Text;

                //利用正则表达式判断各文本框内的值是否符合要求
                if (Regex.IsMatch(userName, @"^[a-zA-Z][a-zA-Z0-9_]{4,15}$") == false)
                {
                    MessageBox.Show("用户名只能由英文和数字组成,长度为5-16个字节");
                }
                else if (Regex.IsMatch(password, @"^[a-zA-Z0-9]\w{5,17}$") == false)
                {
                    MessageBox.Show("密码以字母开头,长度在6~18之间,只能包含字母、数字和下划线");
                }
                else if (Regex.IsMatch(name, @"^[\u4e00-\u9fa5]+$") == false)
                {
                    MessageBox.Show("姓名只能为中文");
                }
                else if (Regex.IsMatch(className, @"^[0-9]+$") == false || Regex.IsMatch(cardID, @"^[0-9]+$") == false)
                {
                    MessageBox.Show("班级和卡号只能为数字");
                }
                else
                {
                    //用户输入的都符合要求

                    //先判断用户名和学号是否重复
                    string selectSQL = "select * from StdInfo where UserName='******' or CardID='" + cardID + "'";

                    DataSet ds = SqlHelper.ExecuteDataset(conn, CommandType.Text, selectSQL);

                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        //有重复的
                        MessageBox.Show("用户名或学号已被注册");
                    }
                    else
                    {
                        RegUserName.Clear();
                        RegPassword.Clear();
                        RegName.Clear();
                        RegClass.Clear();
                        RegCardID.Clear();
                        //没有重复的

                        //将用户输入的密码进行加盐哈希处理
                        password = PasswordSecurity.PasswordStorage.CreateHash(RegPassword.Text);

                        //将数据存入数据库
                        string insertSQL = "INSERT INTO StdInfo VALUES ('" + userName + "', '" + password + "', N'" + name + "', '" + className + "','" + cardID + "')";

                        int result = SqlHelper.ExecuteNonQuery(conn, CommandType.Text, insertSQL);
                        if (result > 0)
                        {
                            MessageBox.Show("注册成功,请返回登录");
                        }
                        else
                        {
                            MessageBox.Show("注册失败,请重新注册");
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("注册失败");
            }
        }