title: Procedure or function "" expects parameter '', which was not supplied
body: <p>I have a problem with Database thing. The stored Proc has to be called with either 3 or 4 parameters. If ImageID is not given, then it has to 
  get into If loop and execute. if ImageID is given, execute the else part of the stored proc. But i have no idea why is that showing 
  Procedure or function "" expects parameter '@ImageID', which was not supplied."</p>
  
  <p>Thanks in Advance</p>
  
  <pre><code>if (!hasImage)
  {
      parameters = new SqlParameter[]
      {
          new SqlParameter("@LocationID", LocationID),
          new SqlParameter("@PrimaryID", 
              Convert.ToInt32(CategoryList[i].ToString().Split(',')[0])),
          new SqlParameter("@SecondaryID", 
              Convert.ToInt32(CategoryList[i].ToString().Split(',')[1]))
      };
  
      SqlHelper.ExecuteNonQuery(
          DbConnString, 
          System.Data.CommandType.StoredProcedure,
          "TempUpdateMerchantCategories_Insert", 
          parameters);
  }
  else
  {
      parameters = new SqlParameter[]
      {
          new SqlParameter("@LocationID", LocationID),
          new SqlParameter("@PrimaryID", 
              Convert.ToInt32(CategoryList[i].ToString().Split(',')[0])),
          new SqlParameter("@SecondaryID", 
              Convert.ToInt32(CategoryList[i].ToString().Split(',')[1])),
          new SqlParameter("@ImageID", 
              Convert.ToInt64(ImageData[j].ToString().Split(',')[0]))
      };
      SqlHelper.ExecuteNonQuery(
          DbConnString, 
          System.Data.CommandType.StoredProcedure,
          "TempUpdateMerchantCategories_Insert", 
          parameters);       
  }
  </code></pre>
  
  <p>The Stored Proc is like this. </p>
  
  <pre><code>CREATE PROCEDURE [dbo].[TempUpdateMerchantCategories_Insert]
  (
  @LocationID BIGINT,
  @PrimaryID INT,
  @SecondaryID INT,
  @ImageID BIGINT)
  
  AS
  BEGIN
  
  if (@ImageID is null)
  
  BEGIN
  SET NOCOUNT ON;
  
  INSERT INTO TempMerchant_Location_Category(
  
  LocationID,
  PrimaryID,
  SecondaryID)
  
  VALUES (
  @LocationID,
  @PrimaryID,
  @SecondaryID)
  
  END
  
  ELSE
  
  BEGIN
  SET NOCOUNT ON;
  
  INSERT INTO TempMerchant_Location_Category( 
  LocationID,
  PrimaryID,
  SecondaryID,
  ImageID)  
  
  VALUES(
  @LocationID,
  @PrimaryID,
  @SecondaryID,
  @ImageID)
  
  END
  END
  </code></pre>