我有一个字典定义为的代码:
Dictionary<int, StringBuilder> invoiceDict = new Dictionary<int, StringBuilder>();
Dictionary 中的每个 KeyValuePair 中的每个 Value 实际上是当前创建的三个单独的值,如下所示:
invoiceDict.Add(pdfCount+i, new StringBuilder(invoiceID.Groups[1].ToString() + "|" + extractFileName + "|" + pdfPair.Key));
如您所见,三个值由“|”分隔。字典中的“行”数可以在 600-1200 之间。我想使用一个表值参数在一次操作中在我的 SQL Server 2008 DB 中获取所有这些。
表值参数定义如下:
CREATE TYPE dbo.BatchSplitterInvoices AS TABLE
(
InvoiceID varchar(24),
NotePath varchar(512),
BatchID varchar(50)
)
CREATE PROCEDURE dbo.cms_createBatchSplitterInvoices (
@Invoices dbo.BatchSplitterInvoices READONLY,
@StaffID int
)
从字典中获取可以传递给表值参数的东西的最佳方法是什么?我应该使用字典以外的东西吗?或者,我是否需要将 Dictionary 解析为另一个更好的数据结构?
SqlParameter invoicesParam = cmd.Parameters.AddWithValue("@Invoices", invoiceDict.Values);
invoicesParam.SqlDbType = SqlDbType.Structured;
谢谢。