Hi Richard,
I would always pass in all the parameters, you can set the parameter value to DBNull.Value if you want to pass in null, but should always pass all the expected parameters.
Also I believe these exceptions are from Debug.Assert which means the error is only thrown when using a debug build, it is designed to alert the developer to incorrect code, a release build would not throw the exception.
Hope that helps,
Joe