为了账号安全,请及时绑定邮箱和手机立即绑定

在asp.net中如何防止用户名的重复

在asp.net中如何防止用户名的重复

陪伴而非守候 2018-12-07 03:05:35
本人是新手。刚刚学习ASP的知识。。。下面是本人用SQL存储过程进行添加用户。 textbox 1    是用户名, textbox2,textbox3---2个都是密码 textbox 4        问题 , textbox5           答案, textbox6           邮箱, 名称 类型 约束 説明 logon_name varchar(50) 无重复 主键,注册帐号 logon_password varchar(20)   帐号密码 sex varchar(10)   性别 question varchar(100)   密码找回问题 answer varchar(100)   密码找回答案 E_mails varchar(100)   邮箱     protected void Button1_Click(object sender, EventArgs e)        {//检测验证控件是否通过验证            if (IsValid)            {    //从配置文件App.config文件的strConnection节点中获得连接语句                string strConnection = "Data Source=20100908-1712;Initial Catalog=图书馆;Integrated Security=True";                //通过连接语句实例化SQL连接对象                SqlConnection sqlCon = new SqlConnection(strConnection);                using (sqlCon)                {                    sqlCon.Open();                    SqlCommand sqlCom = new SqlCommand();                    //命令类型为存储过程                    sqlCom.CommandType = CommandType.StoredProcedure;                    sqlCom.Connection = sqlCon;                    sqlCom.CommandText = "addlogon";                    // 进行信息的添加:数据库信息与textBox中的信息连接,并在数据库中存入,但是不显示信息                    SqlParameter parm1 = new SqlParameter("@logon_name", SqlDbType.NVarChar, 50);                    parm1.Value = TextBox1.Text;                    sqlCom.Parameters.Add(parm1);                    SqlParameter pew1 = new SqlParameter("@logon_password", SqlDbType.NVarChar, 50);                    pew1.Value = TextBox2.Text;                    sqlCom.Parameters.Add(pew1);                    SqlParameter sex1 = new SqlParameter("@sex", SqlDbType.NVarChar, 50);                    sex1.Value = DropDownList1.SelectedValue;                    sqlCom.Parameters.Add(sex1);                    SqlParameter question1 = new SqlParameter("@question", SqlDbType.NVarChar, 50);                    question1.Value = TextBox4.Text;                    sqlCom.Parameters.Add(question1);                    SqlParameter answer1 = new SqlParameter("@answer", SqlDbType.NVarChar, 50);                    answer1.Value = TextBox5.Text;                    sqlCom.Parameters.Add(answer1);                    SqlParameter mails1 = new SqlParameter("@E_mails", SqlDbType.NVarChar, 50);                     mails1.Value = TextBox6.Text;                     sqlCom.Parameters.Add(mails1);                    int i = sqlCom.ExecuteNonQuery();                    if (i == 0)                    { Response.Write("请输入信息"); }                    //进行提示是否命令执行成功!if成功。、则显示successed。否则filed try again。                    if (i > 0)                    {                        Response.Write("感谢你的注册,您已经注册成功!");                        // 注册成功后。所有的信息将全部清空                        TextBox1.Text = "";                        TextBox2.Text = "";                        TextBox3.Text = "";                         TextBox5.text = "";                        TextBox4.Text = "";                        TextBox6.Text = "";                    }                    else                    {                        // 注册失败后。所有的信息将不会被清空。保留便于修改                        Response.Write("抱歉!你注册失败!请重新注册!");                     }                }            }   这是添加注册用户信息。。  我想实现防止同样的用户名注册。就是说。123这个用户已经被人注册了。别人就不能注册这个“123”这个帐号。。 还有。在最后添加成功后,提示成功信息5秒。然后页面跳转    是否需要改动数据库。要添加什么约束。在什么地方添加。。请大虾们帮帮忙。   还是说。我的代码出现错误。无法添加约束??。。请求帮忙解决问题。。 
查看完整描述

5 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

不要一点按钮就添加,步骤:

1.点击按钮时首先根据输入的用户名去数据库查询,

2.查询结果:如果已经有这个用户名,返回并提示用户,如果没有,则执行你写的添加代码。

查看完整回答
反对 回复 2019-01-21
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

不争议把用户名设置为主键。

添加用户的时候,用一个select查找看库里是否有重复的用户,如果返回记录大于0则说明有相同的用户名,则提示用户名已存在。

查看完整回答
反对 回复 2019-01-21
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

把检查用户名是否重复的逻辑写进添加的存储过程里,先检查然后再添加,给存储过程一个输出参数,然后程序里面根据输出参数的值在界面给用户提示,检查用户名是否重复之类的最好在客户端用ajax方式给用户一个即时的提醒...

查看完整回答
反对 回复 2019-01-21
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

同意Astar的说法,你也可以把这个用户名控件放在ajax的updatepanel控件中来异步刷新。

查看完整回答
反对 回复 2019-01-21
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

如果设定主键的话,你执行添加动作的时候会返回错误的,那基本上这个时候直接设定错误讯息就可以了

查看完整回答
反对 回复 2019-01-21
  • 5 回答
  • 0 关注
  • 661 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信