我们需要从我们的 .NET 类对象中分配一个 ADODB.RecordSet,我不确定我是否做得对。假设我有一个名为 orderList 的列表,它由 class 的对象组成Order
,我需要从这个列表中生成一个 RecordSet(我有 adodb 作为参考)。我的代码如下所示:
Dim rs As Recordset = New Recordset
rs.Fields.Append("ID", DataTypeEnum.adInteger)
rs.Fields.Append("Sender", DataTypeEnum.adBSTR)
rs.Fields.Append("Receiver", DataTypeEnum.adBSTR)
...
rs.Open()
For Each o In orderList
rs.AddNew()
rs.Fields("ID").Value = o.ID
rs.Fields("Sender").Value = o.Sender
rs.Fields("Receiver").Value = o.Receiver
...
Next
在我的测试中,当列表有 10000 个对象时,它需要相对较长的时间:超过 3 秒。这很慢,因为订单数量甚至可能超过一百万。我怀疑我RecordSet
是否正确使用了,因为据我所知,RecordSet
通常执行与表的直接连接。一个一个地分配记录感觉不对。但这是我能想到的唯一方法(一些链接暗示了这一点。虽然它没有提到那里的表现)。我们有自己的数据访问层库,并且大部分目标对象一直存在于内存中,这就是为什么我们不想直接使用 RecordSet 到数据库。
所以我的问题是,我应该如何修改我的代码以使其快速运行?“来源”不一定是List
. 它可以是任何 .NET 类型。但目标是我必须有一个RecordSet
对象,因为这是另一个组件的输入要求。