Procedure or function expects parameter ‘@something’, which was not supplied.

Where in actually fact I have already insert the parameter into my SQLCommand object. In the end I realize, the problem is not caused by the parameter but the SQLCommand.CommandType; which I had left out. Caused me 1 hour of unproductive time to look for this.

Other common cause which I found online is the use of null value for paramters (especially OUTPUT parameters), you should actually use DBNull.Value.