在ASP.NET中有多个文本框,ID是:tbUsername等在后台用C#语言连接数据库成功,但是就是插不进去,我用存储过程的方法,就是弄不进去,用什么方法可以将输入的文本写到数据库呀? 谢了!急
响应按钮代码: protected void btnRegiste_Click(object sender, EventArgs e)
    {
        string connStr = "data source=localhost;user id=sa;password=;initial catalog=Sale";
        SqlConnection conn = new SqlConnection(connStr);        //SqlCommand cmd = conn.CreateCommand();
        //cmd.CommandText = "insert into userinfo('123','123455','wfdsg','F','fgs','gsd@gsdff','gfasgf')";        SqlCommand cmd = new SqlCommand("",conn);
        cmd.CommandType = CommandType.Text;
        //存储过程,为参数赋值
        cmd.Parameters.Add("@username", tbUsername.Text);
        cmd.Parameters.Add("@userpwd", Encrypt(tbPassword1.Text)); //密码加密处理
        cmd.Parameters.Add("@realname",tbRealname.Text);
        cmd.Parameters.Add("@gender",dlGender.SelectedValue);
        cmd.Parameters.Add("@phoneno",tbPhnoeno.Text);
        cmd.Parameters.Add("@email",tbEmail.Text);
        cmd.Parameters.Add("@address",tbAddress.Text);
        
        //存储过程返回值
        SqlParameter paramOut = cmd.Parameters.Add("@RETURN_VALUE","");
        paramOut.Direction = ParameterDirection.ReturnValue;        try
        {
            //打开数据库
            conn.Open();
            cmd.CommandText = "insert userinfo values(&tbUsername.Text&,&tbPassword1&,&tbRealname.Text&,&dlGender.SelectedValue&,&tbPhnoeno.Text&,&tbEmail.Text&,&tbAddress.Text&)";
            cmd.ExecuteNonQuery();            if ((int)cmd.Parameters["@RETURN_VALUE"].Value == 0)
            {
                Response.Write("<h3 color=red>注册成功!</h3>");
               
            }
            else
            {
                Response.Write("<h3 color=red>该用户已经存在!</h3>");
            }
        }        catch (SqlException ex) //数据访问异常
        {
            Response.Write("数据访问错误!\n");
            Response.Write(ex.Message);
        }
        catch (Exception ex) //其他异常
        {
            Response.Write("错误\n");
            Response.Write(ex.Message);
        }        finally //关闭数据连接
        {
            conn.Close();
        }    }

解决方案 »

  1.   

    cmd.CommandType = CommandType.StoredProcedure;
      

  2.   

    protected void btnRegiste_Click(object sender, EventArgs e)
        {
            string connStr = "data source=localhost;user id=sa;password=;initial catalog=Sale";
            SqlConnection conn = new SqlConnection(connStr);        SqlCommand cmd = new SqlCommand("",conn);
            cmd.CommandType = CommandType.StoredProcedure;
            //存储过程,为参数赋值
            cmd.Parameters.Add("@username", tbUsername.Text);
            cmd.Parameters.Add("@userpwd", Encrypt(tbPassword1.Text)); //密码加密处理
            cmd.Parameters.Add("@realname",tbRealname.Text);
            cmd.Parameters.Add("@gender",dlGender.SelectedValue);
            cmd.Parameters.Add("@phoneno",tbPhnoeno.Text);
            cmd.Parameters.Add("@email",tbEmail.Text);
            cmd.Parameters.Add("@address",tbAddress.Text);       
                    
            //存储过程返回值
            SqlParameter paramOut = cmd.Parameters.Add("@RETURN_VALUE","");
            paramOut.Direction = ParameterDirection.ReturnValue;        try
            {
                //打开数据库
                conn.Open();            
                cmd.ExecuteNonQuery();            if ((int)cmd.Parameters["@RETURN_VALUE"].Value == 0)
                {
                    Response.Write("<h3 color=red>注册成功!</h3>");
                   
                }
                else
                {
                    Response.Write("<h3 color=red>该用户已经存在!</h3>");
                }
            }        catch (SqlException ex) //数据访问异常
            {
                Response.Write("数据访问错误!\n");
                Response.Write(ex.Message);
            }
            catch (Exception ex) //其他异常
            {
                Response.Write("错误\n");
                Response.Write(ex.Message);
            }        finally //关闭数据连接
            {
                conn.Close();
            }    }我重新该了代码,但是运行后有这样的错误:
    错误 ExecuteNonQuery: CommandText property has not been initialized
      

  3.   

    cmd.CommandType = CommandType.StoredProcedure;cmd的CommandType应该是StoredProcedure;
      

  4.   

    建议先别用存储过程,就用简单的Sql语句看能否行得通..
      

  5.   

    能够通过,用CommandText()可以直接写如字符串到数据库:cmd.CommandText = "insert into userinfo values    ('qqq','www','eee','rrr','ttt','yyy','uuu')"这种方法只能写固定的字符串,但是不能把文本框中输入的内容写到数据库里面
      

  6.   

    TO:这种方法只能写固定的字符串,但是不能把文本框中输入的内容写到数据库里面有这样的事?(&tbUsername.Text&,&tbPassword1&,&tbRealname.Text&,&dlGender.SelectedValue&,&tbPhnoeno.Text&,&tbEmail.Text&,&tbAddress.Text&)";
    试试这个:
    cmd.CommandText="insert into userinfo values(@UserName,@Password,@RealName,@Gender,@Phone,@Email,@Address)";
    cmd.Parameters.Add("@UserName",tbUsername.Text.Trim());
    cmd.Parameters.Add("@Password",tbPassword1.Text.Trim());
    cmd.Parameters.Add("@RealName",tbRealname.Text.Trim());
    cmd.Parameters.Add("@Gender",dlGender.SelectedValue.ToString().Trim());
    cmd.Parameters.Add("@Phone",tbPhnoeno.Text.Trim());
    cmd.Parameters.Add("@Email",tbEmail.Text.Trim());
    cmd.Parameters.Add("@Address",tbAddress.Text.Trim());
    //执行
    ..
      

  7.   

    TO:(&tbUsername.Text&,&tbPassword1&,&tbRealname.Text&,&dlGender.SelectedValue&,&tbPhnoeno.Text&,&tbEmail.Text&,&tbAddress.Text&)";或者将这里的改下:tbPassword1->>tbPassword1.Text至少这里是错的..
      

  8.   

    SqlCommand cmd = new SqlCommand("这里要写上你的存储过程名",conn);
      

  9.   

    大哥呀,对了,太感谢你了,这个问题弄了半天呀!!!cmd.CommandText="insert into userinfo values(@UserName,@Password,@RealName,@Gender,@Phone,@Email,@Address)";
    cmd.Parameters.Add("@UserName",tbUsername.Text.Trim());
    cmd.Parameters.Add("@Password",tbPassword1.Text.Trim());
    cmd.Parameters.Add("@RealName",tbRealname.Text.Trim());
    cmd.Parameters.Add("@Gender",dlGender.SelectedValue.ToString().Trim());
    cmd.Parameters.Add("@Phone",tbPhnoeno.Text.Trim());
    cmd.Parameters.Add("@Email",tbEmail.Text.Trim());
    cmd.Parameters.Add("@Address",tbAddress.Text.Trim());谢谢,非常感谢
      

  10.   

    SqlCommand cmd = new SqlCommand("这里要写上你的存储过程名",conn);我写过CreateUserh和insert into userinfo values(*),但是都有错!