Если вы используете SQL Server 2008, вы можете использовать функцию "табличного параметра" (TVP).
По сути, в SQL Server 2008 вам необходимо определить пользовательский тип таблицы:
CREATE TYPE Customer AS
TABLE (id int, CustomerName nvarchar(50), postcode nvarchar(50))
, а затем используйте это в своей хранимой процедуре в качестве параметра:
CREATE Procedure AddCustomers(@customer Customer READONLY)
А затем в своем коде C # вы создадите переменную DataTable
той же структуры и будете использовать ее в качестве входного параметра. Таким образом, вы можете передать любое количество значений и любую понравившуюся вам структуру.
См. Эти превосходные сообщения в блоге для получения дополнительной информации и обширных примеров кода:
Марк