ASP.NET实现注册功能的实现
本人新手,刚刚接触.NET。最近在实现注册功能时,无法写入数据库。求大神指点一下。代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;//数据库操作需引入的命名空间
using System.Security.Cryptography;//MD5加密需引入的命名空间
using System.Data;
using System.Data.OleDb;
public partial class zhuce_xs : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected bool check(string text) //判断实现
{
if (text.Contains("<") || text.Contains(">") || text.Contains("//") || text.Contains("\\")
|| text.Contains("'")) //检查字串
{
return true;
}
else
{
return false;
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (check(email.Text) || check(xingming.Text) || check(RadioButtonList1.Text) ||
check(age.Text) || check(zhuanye.Text) || check(DropDownList1.Text) || check(shoujihaoma.Text) ||
check(spassword.Text) || check(spwdagain.Text) || check(yzm.Text)) //检查字串
{
Response.Write("<script>alert('用户信息中不能包含特殊字符,如:<,>,',//,\\等,请审核')</script>");
}
else if (Session["CheckCode"].ToString().Equals(yzm.Text.ToString()))
{
try
{
//连接并打开数据库
SqlConnection con = new SqlConnection("server=.;uid=sa;database=JYSystem;pwd=sa");//连接数据库,sever服务器地址,"."代表本机,uid数据库用户名,database数据库名,pwd为sa用户的密码。
con.Open();//打开连接
string strsql = "insert into Student(StuEmail,StuName,Sex,Age,ZhuanYe,XueLi,Tel,PassWord)values('" + email.Text + "','" + xingming.Text + "','" + RadioButtonList1.Text + "','" + age.Text + "','" + zhuanye.Text + "','" + DropDownList1.Text + "','" + shoujihaoma.Text + "','" + spwdagain.Text + "')";
SqlCommand cmd = new SqlCommand(strsql, con); //创建执行
cmd.ExecuteNonQuery(); //执行SQL
Response.Write("<spcript>alert('注册成功!')</script>");
}
catch
{
Response.Write("<script>alert('注册失败,请联系管理员!')</script>");
}
}
else
{
Response.Write("<script>alert('验证码错误!')</script>");
}
}
} --------------------编程问答-------------------- 你要单步调试,看程序有没有执行到 cmd.ExecuteNonQuery();这句话。可以添加监视,看看strsql变量生成的sql语句究竟是什么,带到sql数据库中执行一下。 --------------------编程问答-------------------- 你单步调试到 string strsql = "insert into Student(StuEmail,StuName,Sex,Age,ZhuanYe,XueLi,Tel,PassWord)values('" + email.Text + "','" + xingming.Text + "','" + RadioButtonList1.Text + "','" + age.Text + "','" + zhuanye.Text + "','" + DropDownList1.Text + "','" + shoujihaoma.Text + "','" + spwdagain.Text + "')";看看这边的sql是否正确 --------------------编程问答-------------------- int excuteCount = cmd.ExecuteNonQuery();
if(excuteCount==1)
{
//成功
}
else
{
//失败
}
还有童鞋!connection 打开之后记得要关闭啊!!!!!!! --------------------编程问答--------------------
单步调试的断点要设在哪里,可不可以在具体点。刚刚开始学习,不是很懂。 --------------------编程问答-------------------- 网上找教程看吧。。。 --------------------编程问答--------------------
你单步调试到 string strsql = "insert into Student(StuEmail,StuName,Sex,Age,ZhuanYe,XueLi,Tel,PassWord)values('" + email.Text + "','" + xingming.Text + "','" + RadioButtonList1.Text + "','" + age.Text + "','" + zhuanye.Text + "','" + DropDownList1.Text + "','" + shoujihaoma.Text + "','" + spwdagain.Text + "')";看看这边的sql是否正确
sql语句有执行,在执行完cmd.ExecuteNonQuery();后直接跳到catch语句。Response.Write("<spcript>alert('注册成功!')</script>");这句没有执行。
在执行完cmd.ExecuteNonQuery();数据还是没有写进数据库。 --------------------编程问答-------------------- 我在调试后发现好像是这个异常,导致注册不了。
在将 varchar 值 '本科' 转换成数据类型 tinyint 时失败。 --------------------编程问答-------------------- 数据库定义时貌似有类型上不相同的问题 --------------------编程问答--------------------
数据库定义时貌似有类型上不相同的问题
嗯,是这个问题,已经解决了。谢谢
补充:.NET技术 , C#