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

100分求助,过程或函数 'InsertUserToAccount' 需要参数 '@nvrRealName',但未提供该参数。




using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

public partial class NormalReigister : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //SqlInject myCheck = new SqlInject(this.Request);
        //myCheck.CheckSqlInject();
        if (!IsPostBack)
        {
            imagValide.Attributes.Add("onclick", "this.src=this.src");
            imagValide.Attributes.Add("onclick", "cursor:hand;");
            this.imgValidName.Visible = false;
            this.imgcardTips.Visible = false;
        }
    }


    /// <summary>
    /// 判断用户名是否存在
    /// </summary>
    /// <returns></returns>
    //protected bool IsUNameExist()
    //{
    //    if (this.userName0.Text.Trim()!= string.Empty)
    //    {
    //        return PublicCS.GetuserName0Exist(this.userName0.Text.Trim());
    //    }
    //    //else
    //    //{
            
    //    //    //this.imgValidName.ImageUrl = "~/new_images/wrong_icon.png";
    //    //    //this.lblTips.Text = "请输入您的游戏账号";
    //    //    return false;
    //    //}
    //}
 
    /// <summary>
    /// 注册信息提交
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void imagOK_Click(object sender, ImageClickEventArgs e)
    {

        if (string.Compare(Request.Cookies["cmpcode"].Value, txtValide.Text, true) != 0)
        {
            Page.RegisterStartupScript("ok", "<script>alert('你输入的验证码有误,请重新输入!" +Request.Cookies["cmpcode"].Value + "');</script>");
           // PublicCS.ShowMsg("你输入的验证码有误,请重新输入!" + Request.Cookies["cmpcode"].Value, this.Page);
            return;
        }
        if (PublicCS.exist(PublicCS.getGameUserConn(), "[dbo].[AccountsInfo]", "Accounts", userName0.Text))
        {
            SqlConnection con = PublicCS.getGameUserConn();
            //游戏用户
            SqlCommand cmd = new SqlCommand("[dbo].[InsertUserToAccount]", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@Accounts", SqlDbType.VarChar).Value = userName0.Text.Trim();//账号
            cmd.Parameters.Add("@RegAccounts", SqlDbType.VarChar).Value = userName0.Text.Trim();//确认账号
            cmd.Parameters.Add("@LogonPass", SqlDbType.VarChar).Value = FormsAuthentication.HashPasswordForStoringInConfigFile(iPassword.Text.Trim(), "MD5");//密码
            cmd.Parameters.Add("@InsurePass", SqlDbType.VarChar).Value = FormsAuthentication.HashPasswordForStoringInConfigFile(rePassword.Text.Trim(), "MD5");//确认密码 
           
            cmd.Parameters.Add("@Gender", SqlDbType.Bit).Value = this.ddlSex.SelectedIndex;//性别(0:男,1:女)
            cmd.Parameters.Add("@RegisterIP", SqlDbType.VarChar).Value = Request.UserHostAddress;//注册IP
            cmd.Parameters.Add("@LastLogonIP", SqlDbType.VarChar).Value = Request.UserHostAddress;//最后登录IP
            /*2010-7-22添加三个新字段*/
            cmd.Parameters.Add("@Email", SqlDbType.NVarChar).Value = txtEmail.Text.Trim();//邮箱
            cmd.Parameters.Add("@MobilePhone", SqlDbType.NVarChar).Value = telephone.Text.Trim();//手机号码
            cmd.Parameters.Add("@IDCard", SqlDbType.NVarChar).Value = paper.Text.Trim();//身份证号
              
            //cmd.Parameters.Add("FaceID", SqlDbType.Int).Value = ddl_headno.SelectedIndex + 1;
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();

            }
            catch (SqlException se2)
            {

                throw se2;
            }
            finally
            {
    --------------------编程问答-------------------- InsertUserToAccount 这个存储函数需要多一个参数叫@nvrRealName, 你需要给这个参数赋值。 
就像其他参数一样:

 cmd.Parameters.Add("@nvrRealName", SqlDbType.NVarChar).Value = ....

要注意类型 --------------------编程问答--------------------
引用 楼主 u010156147 的回复:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;

public partial class NormalReigister : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //SqlInject myCheck = new SqlInject(this.Request);
        //myCheck.CheckSqlInject();
        if (!IsPostBack)
        {
            imagValide.Attributes.Add("onclick", "this.src=this.src");
            imagValide.Attributes.Add("onclick", "cursor:hand;");
            this.imgValidName.Visible = false;
            this.imgcardTips.Visible = false;
        }
    }


    /// <summary>
    /// 判断用户名是否存在
    /// </summary>
    /// <returns></returns>
    //protected bool IsUNameExist()
    //{
    //    if (this.userName0.Text.Trim()!= string.Empty)
    //    {
    //        return PublicCS.GetuserName0Exist(this.userName0.Text.Trim());
    //    }
    //    //else
    //    //{
            
    //    //    //this.imgValidName.ImageUrl = "~/new_images/wrong_icon.png";
    //    //    //this.lblTips.Text = "请输入您的游戏账号";
    //    //    return false;
    //    //}
    //}
 
    /// <summary>
    /// 注册信息提交
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void imagOK_Click(object sender, ImageClickEventArgs e)
    {

        if (string.Compare(Request.Cookies["cmpcode"].Value, txtValide.Text, true) != 0)
        {
            Page.RegisterStartupScript("ok", "<script>alert('你输入的验证码有误,请重新输入!" +Request.Cookies["cmpcode"].Value + "');</script>");
           // PublicCS.ShowMsg("你输入的验证码有误,请重新输入!" + Request.Cookies["cmpcode"].Value, this.Page);
            return;
        }
        if (PublicCS.exist(PublicCS.getGameUserConn(), "[dbo].[AccountsInfo]", "Accounts", userName0.Text))
        {
            SqlConnection con = PublicCS.getGameUserConn();
            //游戏用户
            SqlCommand cmd = new SqlCommand("[dbo].[InsertUserToAccount]", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@Accounts", SqlDbType.VarChar).Value = userName0.Text.Trim();//账号
            cmd.Parameters.Add("@RegAccounts", SqlDbType.VarChar).Value = userName0.Text.Trim();//确认账号
            cmd.Parameters.Add("@LogonPass", SqlDbType.VarChar).Value = FormsAuthentication.HashPasswordForStoringInConfigFile(iPassword.Text.Trim(), "MD5");//密码
            cmd.Parameters.Add("@InsurePass", SqlDbType.VarChar).Value = FormsAuthentication.HashPasswordForStoringInConfigFile(rePassword.Text.Trim(), "MD5");//确认密码 
           
            cmd.Parameters.Add("@Gender", SqlDbType.Bit).Value = this.ddlSex.SelectedIndex;//性别(0:男,1:女)
            cmd.Parameters.Add("@RegisterIP", SqlDbType.VarChar).Value = Request.UserHostAddress;//注册IP
            cmd.Parameters.Add("@LastLogonIP", SqlDbType.VarChar).Value = Request.UserHostAddress;//最后登录IP
            /*2010-7-22添加三个新字段*/
            cmd.Parameters.Add("@Email", SqlDbType.NVarChar).Value = txtEmail.Text.Trim();//邮箱
            cmd.Parameters.Add("@MobilePhone", SqlDbType.NVarChar).Value = telephone.Text.Trim();//手机号码
            cmd.Parameters.Add("@IDCard", SqlDbType.NVarChar).Value = paper.Text.Trim();//身份证号
              
            //cmd.Parameters.Add("FaceID", SqlDbType.Int).Value = ddl_headno.SelectedIndex + 1;
            try
            {
                con.Open();
                cmd.ExecuteNonQuery();

            }
            catch (SqlException se2)
            {

                throw se2;
            }
            finally
            {
   


大哥 初中生啊,能不能再详细点啊 --------------------编程问答--------------------
参数不正确 --------------------编程问答-------------------- 缺少@nvrRealName参数! --------------------编程问答-------------------- 缺少nvrRealName,你代码中没有添加这个参数,存储过程需要它 --------------------编程问答-------------------- 很明显,在执行proc是缺少了参数@nvrRealName,在cmd的参数集里添加就可以了。 --------------------编程问答-------------------- --------------------编程问答-------------------- 存储过程里边申明了@nvrRealName ,但你在调用时没有传递 @nvrRealName参数.

cmd.Parameters.Add("@nvrRealName", SqlDbType.NVarChar).Value="" --------------------编程问答-------------------- 存储过程里的参数列表和Parameters里的参数列表好好的对一下,这样的错误有时我也有,参数太多就写乱了,算是低级错误。 --------------------编程问答-------------------- 存储过程里有@nvrRealName这个参数,但是传参的时候没传 --------------------编程问答-------------------- 改一下存储过程,给此参数一个默认值; @nvrRealName INT = 0,      
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,