title: Procedure expects a parameter which was not supplied
body: <p>Towards the end of my code I am calling a stored procedure which updates a table based on the parameters passed by my page. I get the following error: </p>
  
  <blockquote>
    <p>Procedure or function 'Res_invpush_UpdateInv' expects parameter '@InventoryPushSubscriptionId', which was not supplied.</p>
  </blockquote>
  
  <p>Even thought my parameter value is being successfully passed - I know this because I have tested using breakpoints and when I mouse over on the parameter mentioned it gives the value of 1 so I don't know why the message is still coming. </p>
  
  <p>Can somebody please show me where exactly am I going wrong or how to fix it?</p>
  
  <pre><code>SendInvUpdate.InvServices.UpdateRatePackagesRequest ur = new SendInvUpdate.InvServices.UpdateRatePackagesRequest();
      SendInvUpdate.InvServices.UpdateRatePackagesOperationResponse or = new SendInvUpdate.InvServices.UpdateRatePackagesOperationResponse();
  
  
      protected void Page_Load(object sender, EventArgs e)
      {
          try
          {
              string connStr = ConfigurationManager.ConnectionStrings["bb"].ConnectionString;
              SqlConnection Con = new SqlConnection(connStr);
              Con.Open();
              SqlCommand cmd = new SqlCommand("invpush_PollForAvailableChanges", Con);
              cmd.CommandType = CommandType.StoredProcedure;
              SqlParameter NewSysChangeVersionParam = new SqlParameter("@NewSysChangeVersion", SqlDbType.Int);
              NewSysChangeVersionParam.Value = (object)NewSysChangeVersionParam ?? DBNull.Value;
              NewSysChangeVersionParam.Direction = ParameterDirection.InputOutput;
              NewSysChangeVersionParam.SqlDbType = SqlDbType.BigInt;
              SqlDataReader sdr = cmd.ExecuteReader();
  
              InventoryPushSubscriptionRecord rec = new InventoryPushSubscriptionRecord();
  
              while (sdr.Read())
              {
  
                  rec.InventoryPushSubId = sdr.GetInt32(0);
                  rec.CMName = sdr.GetString(1);
                  rec.NotifUrl = sdr.GetString(2);
                  rec.Options = sdr.GetString(3);
                  rec.LastSysChangeVersion = sdr.IsDBNull(4)?(long?)null:sdr.GetInt32(4);
  
              }
  
              if(!sdr.NextResult()) throw new System.Exception("Expected Result set 1 for InventoryChangeRecord");
              InventoryChangeRecord inrec = new InventoryChangeRecord();
              while (sdr.Read())
              {
                  inrec.InventoryPushSubId= sdr.GetInt32(0);
                  inrec.SysChangeVersion=sdr.IsDBNull(1)?(long?)null:sdr.GetInt32(1);
                  inrec.InvDate=sdr.GetDateTime(2);
                  inrec.ResId=sdr.GetInt32(3);
                  inrec.RoomType=sdr.GetString(4);
                  inrec.InvCount=sdr.GetInt32(5);
                  inrec.ResName=sdr.GetString(6);
  
              }
  
              sdr.Close();
              sdr.Dispose();
  
              if (NewSysChangeVersionParam != null)
              {
                  SendInvUpdate.InvServices.InventoryServiceClient isc = new SendInvUpdate.InvServices.InventoryServiceClient();
                          or = isc.UpdateRatePackages(request);
  
  
                          res = or.Results.ToString();
                          int Subid;
                          SubId=inrec.InventoryPushSubscriptionId;
                          SqlCommand ucmd = new SqlCommand("Res_invpush_UpdateInv", Con);
                          ucmd.CommandType = CommandType.StoredProcedure;
                          SqlParameter LastChange = new SqlParameter("@NewLastSysChangeVersion", SqlDbType.Int);
                          LastChange.Value = NewSysChangeVersionParam;
                          SqlParameter SubscriptionId = new SqlParameter("InventoryPushSubscriptionId", SqlDbType.Int);
                          SubscriptionId.Value = SubId;
                          ucmd.ExecuteNonQuery();
  
  
                      }
  
                  }
              }                             
  
          }
  
          catch (Exception ex)
          {
              throw (ex);
          }
      }
  
  }
  </code></pre>