How many parameters do you consider to be "a large number"? Also, why does the stored procedure have so many parameters? Sounds like it will be fun to test.
How will the code that calls the stored procedure come up with the data it needs to pass in the parameters? If the data are already available in XML, then XML might be a good way to pass them. If the data are already available in separate variables, then Parameters objects might be better.
Note also that with SQL Server 2008 you have the option of sending a DataTable as the value of a parameter of a TABLE type.
EDIT: Easy Way to Set Up Parameters
Although I believe that DataSets are over-used and abused, the following is a procedure that will set up stored procedure parameter objects and make it much easier to call stored procedures with many parameters:
- Create a new DataSet by using "Add New Item" and choosing DataSet. Name the DataSet whatever you like.
- View Server Explorer if you weren't already viewing it
- Add a connection to your database if it's not already there
- Expand the connection until you find your stored procedure
- Drag the Stored Procedure onto the design surface
This will create a TableAdapter with a method on it to call your stored procedure. The method depends on the SqlParameter objects that the infrastructure will already have created. The method will take the SP parameters passed in as parameters of the method call, and will use the call parameters to fill in the SP parameters. This is all done for you, and is done in a reasonably efficient manner.