本人是新手。刚刚学习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秒。然后页面跳转
是否需要改动数据库。要添加什么约束。在什么地方添加。。请大虾们帮帮忙。
还是说。我的代码出现错误。无法添加约束??。。请求帮忙解决问题。。
不要一点按钮就添加,步骤:
1.点击按钮时首先根据输入的用户名去数据库查询,
2.查询结果:如果已经有这个用户名,返回并提示用户,如果没有,则执行你写的添加代码。
不争议把用户名设置为主键。
添加用户的时候,用一个select查找看库里是否有重复的用户,如果返回记录大于0则说明有相同的用户名,则提示用户名已存在。
把检查用户名是否重复的逻辑写进添加的存储过程里,先检查然后再添加,给存储过程一个输出参数,然后程序里面根据输出参数的值在界面给用户提示,检查用户名是否重复之类的最好在客户端用ajax方式给用户一个即时的提醒...
同意Astar的说法,你也可以把这个用户名控件放在ajax的updatepanel控件中来异步刷新。
如果设定主键的话,你执行添加动作的时候会返回错误的,那基本上这个时候直接设定错误讯息就可以了