Bạn có thể thay đổi quy trình đã lưu trữ để chấp nhận một bảng tham số có giá trị như một đầu vào. Tuy nhiên, trước tiên, bạn sẽ cần tạo một bảng TYPE do người dùng xác định phù hợp với cấu trúc của C # DataTable:
CREATE TYPE dbo.PersonType AS TABLE
(
Name NVARCHAR(50), -- match the length of SomeTable.Column1
Age INT
);
Điều chỉnh SPROC của bạn:
CREATE PROCEDURE dbo.InsertPerson
@Person dbo.PersonType READONLY
AS
BEGIN
INSERT INTO SomeTable(Column1, Column2)
SELECT p.Name, p.Age
FROM @Person p;
END
Trong C #, khi bạn liên kết dữ liệu với tham số PROC, bạn cần chỉ định tham số là:
parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "dbo.PersonType";
Xem thêm ví dụ ở đây Chuyển Bảng-Giá trị Tham số cho một thủ tục được lưu trữ