日期:2014-05-18  浏览次数:20431 次

关于用户注册的一点问题
小弟的开发工具是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 = {