.net:将通用列表转换为DataReader?

.net generic-list sqlbulkcopy sqldatareader winforms

嗨,我在winform中有一个填充的通用列表,现在想将其数据作为批量复制发送到SQL服务器表。在我阅读SqlBulkCopy类时,它需要一个数据读取器作为源。

现在,我该如何将其转换为DataReader?

谢谢

一般承认的答案

您可以将其转换为DataTable并发送到SqlBulkCopy。它会更容易,并且没有性能损失,因为所有数据都已存在于内存中。

关于SO也有类似的问题


专家解答

如果数据量足够理智,可以作为List<T>存在,那么您也可以构建一个DataTable并以这种方式推送数据。我不喜欢 DataTable ,但它很好地完成了这项工作。另一种方法是编写自定义IDataReader实现这样的 ,但它迭代,每次在列表中的项目。我不确定这是值得的。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因