title: SQL Server Insert Error: Column name or number of supplied values does not match table definition
body: <p>I'm trying to add data to a table in SQL Server, using Microsoft Visual Studio 2012. However, it gives me this error:</p>
  
  <blockquote>
    <p>SQLException was undandled by user code.<br>
    Column name or number of supplied values does not match table definition.</p>
  </blockquote>
  
  <p>Here's my codes:</p>
  
  <pre><code>protected void btnAdd_Click(object sender, EventArgs e)
  {
      con.Open(); // establish a database connection
      SqlCommand cmd = new SqlCommand();
      cmd.Connection = con;
      cmd.CommandText =
          "INSERT INTO Products VALUES (@CatID, @Name, " +
          "@Image, @Description, @Price)";
      cmd.Parameters.Add("@CatID", SqlDbType.Int).Value =
          ddlCategories.SelectedItem.Value;
      cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value =
          txtName.Text;
      cmd.Parameters.Add("@Image", SqlDbType.NVarChar).Value =
          "http://localhost:12345/CAPSTONE/images/" + fuImage.FileName;
      cmd.Parameters.Add("@Description", SqlDbType.NVarChar).Value =
          txtDescription.Text;
      cmd.Parameters.Add("@Price", SqlDbType.Decimal).Value =
          txtPrice.Text;
      // saving the image file to your website folder 'Images'
      fuImage.SaveAs(Server.MapPath("~/images/" + fuImage.FileName));
      cmd.ExecuteNonQuery();
      con.Close();
      Response.Redirect("Default.aspx");
  }
  </code></pre>