如何使用 System.Data.DataTableExtensions? 复制到数据表方法?
我想使用 DataTableExtensions 中提供的 CopyToDataTable 方法创建一个给定列表的数据表。 我之前问过这个问题 如何将列表转换为一个数据集?并得到一个来自 CMS 的特殊答案,它是通过创建扩展 public static DataTable ToDataTable< 来实现我想要的;T>(这个 IEnumerable
我一直在使用他的建议...但最近我在博客中看到已经存在这样的扩展... CopyToDataTable
存在于 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请参阅此链接:
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.
唉,对于
CopyToDataTable
,T
必须是DataRow
(或从DataRow
派生的类型)。(有关详细信息,请参阅MSDN 文档。)
Alas, for
CopyToDataTable
,T
must beDataRow
(or a type derived fromDataRow
).(See the MSDN documentation for more information.)
这并不是你真正想要的。 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.)