当前位置:编程学习 > C#/ASP.NET >>

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 打开之后记得要关闭啊!!!!!!! --------------------编程问答--------------------
引用 1 楼 guwei4037 的回复:
你要单步调试,看程序有没有执行到 cmd.ExecuteNonQuery();这句话。可以添加监视,看看strsql变量生成的sql语句究竟是什么,带到sql数据库中执行一下。

单步调试的断点要设在哪里,可不可以在具体点。刚刚开始学习,不是很懂。 --------------------编程问答--------------------
引用 4 楼 fky559387 的回复:
Quote: 引用 1 楼 guwei4037 的回复:

你要单步调试,看程序有没有执行到 cmd.ExecuteNonQuery();这句话。可以添加监视,看看strsql变量生成的sql语句究竟是什么,带到sql数据库中执行一下。

单步调试的断点要设在哪里,可不可以在具体点。刚刚开始学习,不是很懂。
网上找教程看吧。。。 --------------------编程问答--------------------
引用 2 楼 qiujialongjjj 的回复:
你单步调试到 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 时失败。 --------------------编程问答-------------------- 数据库定义时貌似有类型上不相同的问题 --------------------编程问答--------------------
引用 8 楼 qiujialongjjj 的回复:
数据库定义时貌似有类型上不相同的问题

嗯,是这个问题,已经解决了。谢谢
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,