The Size property has an invalid size of 0

12,859

Set parameter size like:

   _outputparam.Size = 7;
Share:
12,859
user72
Author by

user72

Updated on July 31, 2022

Comments

  • user72
    user72 almost 2 years

    Here is my SP:

    CREATE PROCEDURE _insertAdminProfile
    (
        @Ad_Fname VARCHAR(25),
        @Ad_Lname VARCHAR(25),
        @Ad_DOB DATE,
        @Ad_Sex VARCHAR(25),
        @Ad_Address VARCHAR(200),
        @Ad_Phone VARCHAR(12),
        @Ad_Email VARCHAR(25),
        @Ad_Pwd VARCHAR(7) OUTPUT
    )
    AS BEGIN
        DECLARE @MyTableVar TABLE (Ad_Pwd VARCHAR(7));
        INSERT INTO dbo.Admin_Profile (Ad_Fname, Ad_Lname, Ad_DOB, Ad_Sex,Ad_Address,Ad_Phone,Ad_Email)
        OUTPUT INSERTED.Ad_Regid INTO @MyTableVar
        VALUES (@Ad_Fname, @Ad_Lname, @Ad_DOB, @Ad_Sex, @Ad_Address, @Ad_Phone, @Ad_Email)
    
        SELECT @Ad_Pwd = Ad_Pwd
        FROM @MyTableVar
    END
    

    Here is my Code:

    protected void cmdprofile_Click(object sender, EventArgs e)
    {
        string _gender;
    
        if (rdomale.Checked)
        {
           _gender = "Male";
    
        }
    
        else
        {
           _gender = "Female";
        }
    
        Class1.con = CreateConnection();
        cmd = new SqlCommand("_insertAdminProfile", Class1.con );
        cmd.CommandType =  System.Data.CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@Ad_Fname", txtfname.Text);
        cmd.Parameters.AddWithValue("@Ad_Lname", txtlname.Text);
        cmd.Parameters.AddWithValue("@Ad_DOB", txtdob.Text);
        cmd.Parameters.AddWithValue("@Ad_Sex", _gender);
        cmd.Parameters.AddWithValue("@Ad_Address", txtaddress.Text);
        cmd.Parameters.AddWithValue("@Ad_Phone", txtphone.Text);
        cmd.Parameters.AddWithValue("@Ad_email", txtemail.Text);
    
        SqlParameter _outputparam = new SqlParameter();
        _outputparam.ParameterName = "@Ad_Regid";
        _outputparam.SqlDbType = System.Data.SqlDbType.VarChar;
        _outputparam.Direction = System.Data.ParameterDirection.Output;
         cmd.Parameters.Add(_outputparam); 
    
         cmd.ExecuteNonQuery(); **// Here shows my error:: String[7]: the Size property has an invalid size of 0.**
    
         string _ID = _outputparam.Value.ToString();
         ClientScript.RegisterStartupScript(this.GetType(), "message", "alert('New Values Inserted and Your temporary password is: " + _ID + "');", true);          
         MultiView1.SetActiveView(Login_stat);
    
    }
    
  • user72
    user72 almost 11 years
    Where do i give this size?
  • Steve Syfuhs
    Steve Syfuhs almost 11 years
    There's a Size property on the SqlParameter object.
  • Nithin Paul
    Nithin Paul over 9 years
    Can you explain it in detail, what does it mean?