如何使用 System.Data.DataTableExtensions? 复制到数据表方法?

发布于 2024-07-13 17:46:32 字数 1031 浏览 7 评论 0原文

我想使用 DataTableExtensions 中提供的 CopyToDataTable 方法创建一个给定列表的数据表。 我之前问过这个问题 如何将列表转换为一个数据集?并得到一个来自 CMS 的特殊答案,它是通过创建扩展 public static DataTable ToDataTable< 来实现我想要的;T>(这个 IEnumerable集合)

我一直在使用他的建议...但最近我在博客中看到已经存在这样的扩展... CopyToDataTable(此 IEnumerable源) : DataTable 存在于 System.Data.DataTableExtensions 中。

因此,我认为我应该改用这种内置的扩展方法,而不是使用我必须自己维护的扩展方法。

不幸的是,我在弄清楚如何使用它时遇到了一些麻烦。

我可以使用 IList 并说 myListofMyClass.CopyToDataTable() 但出现编译错误,提示“类型 'MyClass' 必须可转换为 'System.Data.DataRow' 才能将其用作泛型中的参数 'T'方法...”

我需要对 MyClass 执行一些特殊操作才能将其转换为 System.Data.DataRow 吗? 我需要实现一些接口吗?

I'd like to create a data table given a List using the CopyToDataTable method available in DataTableExtensions. I've previously asked the question How do I transform a List into a DataSet? and got an exceptional answer from CMS which was to achieve what I wanted by creating an extension public static DataTable ToDataTable<T>(this IEnumerable<T> collection)

I've been using what he suggested...but recently I've seen in a blog that there already exists such an extension... CopyToDataTable<T>(this IEnumerable<T> source) : DataTable which exists in System.Data.DataTableExtensions.

As a result, I figure I should switch over to using this inbuilt extension method instead of using one that I'd have to maintain myself.

Unfortunately, I'm having a bit of trouble figuring out how to use it.

I can take my IList and say myListofMyClass.CopyToDataTable() but I get a compile error that says "The type 'MyClass' must be convertible to 'System.Data.DataRow' in order to use it as parameter 'T' in the generic method..."

Is there something special I need to do MyClass in order to make it convertible to System.Data.DataRow? Is there some interface I need to implement?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

要走干脆点 2024-07-20 17:46:32

请参阅此链接:

http://blogs.msdn。 com/aconrad/archive/2007/09/07/science-project.aspx

基本上,它曾经是 Linq 的一部分,但由于某种原因它被删除了。 不过他的方法确实很有效,所以请检查一下。

See this link:

http://blogs.msdn.com/aconrad/archive/2007/09/07/science-project.aspx

Basically, it did used to be part of Linq, but for some reason it was removed. His method there does work great though, so check it out.

茶底世界 2024-07-20 17:46:32

唉,对于 CopyToDataTableT 必须是 DataRow(或从 DataRow 派生的类型)。

(有关详细信息,请参阅MSDN 文档。)

Alas, for CopyToDataTable, T must be DataRow (or a type derived from DataRow).

(See the MSDN documentation for more information.)

顾北清歌寒 2024-07-20 17:46:32

这并不是你真正想要的。 CopyToDataTable 用于将专门的 DataRows 集合复制到 DataTable 中(这是 DataRows 的集合,加上一堆垃圾;CTDT 处理“垃圾”方面。)

This isn't really what you want. CopyToDataTable is made for copying collections specifically of DataRows into a DataTable (which is a collection of DataRows, plus a bunch of junk; CTDT handles the "junk" aspect.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文