gpt4 book ai didi

c# - 从 Dictionary 到表值 SqlParameter。如何?

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:27 24 4
gpt4 key购买 nike

我的代码中的字典定义为:

Dictionary<int, StringBuilder> invoiceDict = new Dictionary<int, StringBuilder>();

每个 KeyValuePair 中的每个 Value Dictionary 实际上是当前创建的三个独立的值,如下所示:

invoiceDict.Add(pdfCount+i, new StringBuilder(invoiceID.Groups[1].ToString() + "|" + extractFileName + "|" + pdfPair.Key));

如您所见,这三个值由“|”分隔。词典中的“行”数可以在 600-1200 之间。我想使用表值参数在一次操作中获取我的 SQL Server 2008 数据库中的所有内容。

表值参数定义如下:

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;

谢谢。

最佳答案

由于围绕 TVP 的文档有点差(需要的不仅仅是 IEnumerable),而且无论如何都必须解析字典的内容,我决定将字典循环到 DataTable 中,这似乎是首选对象喂一个 TVP。

关于c# - 从 Dictionary<int, StringBuilder> 到表值 SqlParameter。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com