将数据类型 varchar 转换为 bigint 时出错,求帮看代码
publicpartialclassFrontDesk_Login_UserRegister:System.Web.UI.Page{DataConmyCon=newDat...
public partial class FrontDesk_Login_UserRegister : System.Web.UI.Page
{
DataCon myCon = new DataCon();
DataOperate sqlBind = new DataOperate();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRegister_Click(object sender, EventArgs e)
{
string sqltest = "select * from tb_User where UserID='" + this.txtUserID.Text + "'";
SqlConnection sqlconn = myCon.getCon();
sqlconn.Open();
SqlCommand sqlcom = new SqlCommand(sqltest, sqlconn);
SqlDataReader read = sqlcom.ExecuteReader();
read.Read();
if (read.HasRows)
{
if (this.txtUserID.Text.Trim() == read["UserID"].ToString().Trim())
{
Response.Write("<script language='javascript'>alert('该用户ID已经注册过');localtion='UserRegister.aspx'</script>");
return;
}
}
string sqlstr = "insert into tb_User "
+ "(UserID,UserLoginName,UserSex,UserPwd,UserName,"
+ "UserQuePwd,UserAnsPwd,UserTel,UserEmail,UserAddress,UserPostCode,UserQQ)"
+ "values('" + txtUserID.Text + "','" + txtLoginName.Text + "','" + ddlSex.Text
+ "','" + txtPwd.Text + "','" + txtTName.Text + "','" + txtQuePwd.Text
+ "','" + txtAnsPwd.Text + "','" + txtTel.Text + "','" + txtEmail.Text
+ "','" + txtAddress.Text + "','" + txtPostCode.Text + "','" + txtQQ.Text + "')";
sqlBind.DataCom(sqlstr);
Response.Redirect("SuccessReg.aspx");
}
将数据类型 varchar 转换为 bigint 时出错。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 将数据类型 varchar 转换为 bigint 时出错。
源错误:
行 67: SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);
行 68: SqlDataReader read = sqlcom.ExecuteReader();
行 69: read.Read();
行 70: if (read.HasRows)
行 71: {
源文件: f:\BBS\FrontDesk\Login\UserRegister.aspx.cs 行: 69 展开
{
DataCon myCon = new DataCon();
DataOperate sqlBind = new DataOperate();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRegister_Click(object sender, EventArgs e)
{
string sqltest = "select * from tb_User where UserID='" + this.txtUserID.Text + "'";
SqlConnection sqlconn = myCon.getCon();
sqlconn.Open();
SqlCommand sqlcom = new SqlCommand(sqltest, sqlconn);
SqlDataReader read = sqlcom.ExecuteReader();
read.Read();
if (read.HasRows)
{
if (this.txtUserID.Text.Trim() == read["UserID"].ToString().Trim())
{
Response.Write("<script language='javascript'>alert('该用户ID已经注册过');localtion='UserRegister.aspx'</script>");
return;
}
}
string sqlstr = "insert into tb_User "
+ "(UserID,UserLoginName,UserSex,UserPwd,UserName,"
+ "UserQuePwd,UserAnsPwd,UserTel,UserEmail,UserAddress,UserPostCode,UserQQ)"
+ "values('" + txtUserID.Text + "','" + txtLoginName.Text + "','" + ddlSex.Text
+ "','" + txtPwd.Text + "','" + txtTName.Text + "','" + txtQuePwd.Text
+ "','" + txtAnsPwd.Text + "','" + txtTel.Text + "','" + txtEmail.Text
+ "','" + txtAddress.Text + "','" + txtPostCode.Text + "','" + txtQQ.Text + "')";
sqlBind.DataCom(sqlstr);
Response.Redirect("SuccessReg.aspx");
}
将数据类型 varchar 转换为 bigint 时出错。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 将数据类型 varchar 转换为 bigint 时出错。
源错误:
行 67: SqlCommand sqlcom = new SqlCommand(sqlstr, sqlconn);
行 68: SqlDataReader read = sqlcom.ExecuteReader();
行 69: read.Read();
行 70: if (read.HasRows)
行 71: {
源文件: f:\BBS\FrontDesk\Login\UserRegister.aspx.cs 行: 69 展开
展开全部
string sqltest = "select * from tb_User where UserID='" + this.txtUserID.Text + "'";
如果你的UserID字段是bigint类型的,那么 this.txtUserID.Text的值只能包含数字,
我刚测试了一下,
select * from userinfo where userid='111a'
select * from userinfo where userid='111'
第一条就会报你说的异常
处理方法是把userid改为varchar类型的
如果你的需求就是bigint的那么你在输入txtUserID的时候只能输入数字,
bigint类型的可以不加单引号
select * from userinfo where userid=111
如果你的UserID字段是bigint类型的,那么 this.txtUserID.Text的值只能包含数字,
我刚测试了一下,
select * from userinfo where userid='111a'
select * from userinfo where userid='111'
第一条就会报你说的异常
处理方法是把userid改为varchar类型的
如果你的需求就是bigint的那么你在输入txtUserID的时候只能输入数字,
bigint类型的可以不加单引号
select * from userinfo where userid=111
展开全部
建议楼主这样做:userID是数据库自动生成的。loginName是用户填写。当注册时select loginName是否存在,userID仅作为外键主键。而loginName的类型你可以定义为vchar nvachar char 都可以。不过要在输入时js验证是否符合自己的要求。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if (read.HasRows)里面不需要再判断了。还有你的UserID是什么类型的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询