读书人

关于用户注册的一点有关问题

发布时间: 2012-01-24 23:11:55 作者: rapoo

关于用户注册的一点问题
小弟的开发工具是visual studio 2005+sql server 2005
(1)我先在sql2005中建了一个表user,有user_id(主键,不允许为空),user_name(不允许为空),user_Pwd(不允许为空)。
(2)然后在vs2005里建了一个ASP.NET网站,其中一个regedit页面用于注册,该页面有3个textbox和1个警告用的label,分别是userName,userPwd_1,userPwd_2,warning,用于输入用户名,密码,确认密码,发出警告。
(3)regedit.aspx.cs的相关代码如下:
protected void submit_Click(object sender, EventArgs e)
{
if (userName.Text == "")
{
warning.Text = "请输入用户名";
}
if (userPwd_1.Text == "")
{
warning.Text += "请输入密码";
}
if (userPwd_2.Text != userPwd_1.Text)
{
warning.Text += "密码不一致";
}
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
conn.Open();
string str = "insert into user(user_name,user_Pwd) values('" + userName.Text + "',
'"+userPwd_1.Text + "')";
SqlCommand comm = new SqlCommand(str, conn);
comm.ExecuteNonQuery();
conn.Close();

}
(4)这样只会发出警告,3个textbox里的信息还是会往user表里添加信息,请问应该怎样写才能做出更好的警告和阻止非法信息的写入,谢谢^^。

[解决办法]

C# code
                if   (userName.Text   ==   " ")                 {                         warning.Text   =   "请输入用户名 ";                 }                 else if   (userPwd_1.Text   ==   " ")                 {                         warning.Text   +=   "请输入密码 ";                 }                 else if   (userPwd_2.Text   !=   userPwd_1.Text)                 {                           warning.Text   +=   "密码不一致 ";                 } else{                SqlConnection   conn   =   new   SqlConnection(ConfigurationManager.ConnectionStrings[ "constr "].ConnectionString);                 conn.Open();                 string   str   =   "insert   into   user(user_name,user_Pwd)   values( ' "   +   userName.Text   +   " ',                                           ' "+userPwd_1.Text   +   " ') ";                 SqlCommand   comm   =   new   SqlCommand(str,   conn);                 comm.ExecuteNonQuery();                 conn.Close(); }
[解决办法]
IF在判断的时候思想错了拉 ....
不管你怎么样 !!肯定都会执行button事件的
LS的正解
[解决办法]
用检验控件
<asp:RequiredFieldValidator id="user_t" ControlToValidate="userName" Display="Dynamic" text="必须输入用户名!"
ErrorMessage="必须输入用户名!" runat="server" />
<asp:RequiredFieldValidator id="user_t" ControlToValidate="userPwd_1" Display="Dynamic" text="必须输入密码!"
ErrorMessage="必须输入密码!" runat="server" />

<asp:CompareValidator ControlToValidate="userPwd_2" id="userPwd_1" ControlToCompare="txtpass" Display="Dynamic" Text="两次密码输入不一致" ErrorMessage="两次密码输入不一致!" Operator="Equal" runat="server"/>
</td>

If IsValid
{
write db
}

[解决办法]
在添加的时候验证一下不就行了吗...验证通过了才添加,没有通过就不添加
[解决办法]
最好可以写个js文件名为validate.js
Validator = {


Require : /.+/,
}
在这个JS里你可以写很多的正则表达式
这样你的项目所有的验证都可以调用JS来验证 非常方便
比如
在页面上面引入JS文件
<script language="javascript" src="../INC/validate.js"></script>

<input type="textbox" id="username" name="用户名" dataType="Require" msg="姓名不能为空!">
dataType="Require" JS文件中的键
msg="姓名不能为空!" 错误提示


[解决办法]
看看楼主的代码:
        if (userName.Text == " ")
{
warning.Text = "请输入用户名 ";
}
if (userPwd_1.Text == " ")
{
warning.Text += "请输入密码 ";
}
if (userPwd_2.Text != userPwd_1.Text)
{
warning.Text += "密码不一致 ";
}
如果判断不符合,则应该退出事件啊,没有退出,当然会执行下面的代码了。

应该这样:

C# code
                if   (userName.Text   ==   " ")                {                        warning.Text   =   "请输入用户名 ";                        return;                }                if   (userPwd_1.Text   ==   " ")                {                        warning.Text   +=   "请输入密码 ";                        return;                }                if   (userPwd_2.Text   !=   userPwd_1.Text)                {                          warning.Text   +=   "密码不一致 ";                        return;                }                 //......
[解决办法]
你的判断白做了,IF语句用错了
[解决办法]
if (userName.Text == " ")
{
warning.Text = "请输入用户名 ";
return;
}
if (userPwd_1.Text == " ")
{
warning.Text = "请输入密码 ";
return;
}
if (userPwd_2.Text != userPwd_1.Text)
{
warning.Text = "密码不一致 ";
return;
}
这样不就行了吗 何必如此麻烦呢

读书人网 >asp.net

热点推荐