VS环境下一个注册界面的后台
使用RadioButton控件分两种注册身份
经测试发现普通用户注册没问题 医生用户点了注册没反应后台代码:    string connStr = ConfigurationManager.ConnectionStrings["connStr"].ToString();//在配置文件中获得连接字符
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                if (rbtn_zj.Checked)
                {
                    string pass = ClsMD5.Encrypt(txt_pwd.Text, "hongying*wangluo");//密文
                    str = "insert into T_doctors(type,dUserName,dPwd,dpassword,dMail,dTrueName,dGander,dHospital,dHAddress,dDepartment,dMajor,dAbout,dPhone,dProfessional,dLiecense)values(@type,@dUserName,@dPwd,@dpassword,@dMail,@dTrueName,@dGander,@dHospital,@dHAddress,@dDepartment,@dMajor,@dAbout,@dPhone,@dProfessional,@dLiecense)";
                    int result = SqlHelper.ExecuteNonQuery(connStr, CommandType.Text, str, new SqlParameter("@type", rbtn_zj.Text), new SqlParameter("@dUserName", ys_Name.Text), new SqlParameter("@dPwd", ys_pwd.Text), new SqlParameter("@dpassword", pass), new SqlParameter("@dMail", ys_mail.Text), new SqlParameter("@dTureName", true_name.Text), new SqlParameter("@dGander", rdfemal.Text), new SqlParameter("@dHospital", txt_hospital.Text), new SqlParameter("@dHAddress", txt_adress.Text), new SqlParameter("@dDepartment", list_keshi.SelectedValue), new SqlParameter("@dMajor", txt_major.Text), new SqlParameter("@dAbout", txt_jianli.Text), new SqlParameter("@dPhone", txt_photo.Text), new SqlParameter("@dProfessional", list_zhicheng.SelectedValue), new SqlParameter("@dLiecense", FileUpload1.FileName));
                    Response.Write("<script type='text/javascript'>alert('恭喜你,您成功注册了医生用户,点此转到登陆界面>>>');document.location='DengLu.aspx';</script>");
                }
                if (rbtn_pt.Checked)
                {
                    string pass = ClsMD5.Encrypt(txt_pwd.Text, "hongying*wangluo");//密文
                    str = "insert into T_users(type,userName,uPwd,password,uMail)values(@type,@userName,@uPwd,@password,@uMail)";
                    int result = SqlHelper.ExecuteNonQuery(connStr, CommandType.Text, str, new SqlParameter("@type", rbtn_pt.Text), new SqlParameter("@userName", txt_username.Text), new SqlParameter("@uPwd", txt_pwd.Text), new SqlParameter("@password", pass), new SqlParameter("@uMail", txt_mail.Text));
                    Response.Write("<script type='text/javascript'>alert('恭喜你,您成功注册了普通用户,点此转到登陆界面>>>');document.location='DengLu.aspx';</script>");
                    //Response.Redirect("DengLu.aspx");//重定向到登录界面
                }
                
                            }

解决方案 »

  1.   

    调试吧,看看医生处 ExecuteNonQuery 返回什么,insert语句是否正确插入
      

  2.   

    普通用户数据库正常 医生用户数据库没有数据存入  感觉没头绪 找不到源头
    insert语句已经检查好几遍了  确定无误
    现在怀疑 是不是 取值的时候有语法问题?
      

  3.   

    两段SQL字符串命令:
    "insert into T_doctors(type,dUserName,dPwd,dpassword,dMail,dTrueName,dGander,dHospital,dHAddress,dDepartment,dMajor,dAbout,dPhone,dProfessional,dLiecense) values(@type,@dUserName,@dPwd,@dpassword,@dMail,@dTrueName,@dGander,@dHospital,@dHAddress,@dDepartment,@dMajor,@dAbout,@dPhone,@dProfessional,@dLiecense)";
    你把values前面插入一个空格试试(两段SQL命令都需要加空格),看能不能执行,或者报什么异常错误?
      

  4.   

    还是没反应   
    情况一直是 无任何报错 前台运行状况没问题  普通用户注册没问题  医生用户点击不会弹出成功确认框 数据库也不会存入数据  
    现在又开始怀疑是不是前台RadioButton控件的设置有问
      

  5.   

    看看传那些值有没有问题?调试把sql语句放到查询分析器看看能不能插入??
      

  6.   

    调试下,看下各个的值跟SQL语句,
      

  7.   

    能不能排除法啊。
    先确定sql语句没有错误,把语句复制到sql查询器里面调试下,试试。
    在看下SqlHelper.ExecuteNonQuery啊。
    我以前就是出现了一个全角的空格在sql里面,查奔溃了。
      

  8.   

    必须声明标量变量 "@type"。这什么意思?
      

  9.   

    既然sql语句没有错,打个断点看看最终的取值,看到底取到值了没有。
      

  10.   

    单步调试,尤其是取值看对不对,取完值后拼成SQL语句能不能执行,如果能执行,就看之前取值之后到组成SQL语句,值有没有变化!就这点,很简单。