È possibile modificare la procedura memorizzata per accettare una tabella parametro di valore come input. Prima, tuttavia, dovrai creare una tabella definita dall'utente TYPE che corrisponda alla struttura di C# DataTable:
CREATE TYPE dbo.PersonType AS TABLE
(
Name NVARCHAR(50), -- match the length of SomeTable.Column1
Age INT
);
Regola il tuo SPROC:
CREATE PROCEDURE dbo.InsertPerson
@Person dbo.PersonType READONLY
AS
BEGIN
INSERT INTO SomeTable(Column1, Column2)
SELECT p.Name, p.Age
FROM @Person p;
END
In C#, quando si associa il datatable al parametro PROC, è necessario specificare il parametro come:
parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "dbo.PersonType";
Vedi anche l'esempio qui Passing a Table-Valued Parametro a una stored procedure