在这一点上我的深度!我在DataSet
设计师中设计了DataSet
。我通过xml文件导入/导出数据。因此,我不使用数据连接,因此无法弄清楚如何构建查询(因为这些似乎需要一个表适配器,而这又需要数据连接)。
因此尝试通过LINQ连接构建查询。简化代码:
Imports System.Data
Imports System.Linq
Public Class Configuration
Public FullSystem As New DataTable
Private Sub Configuration_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
call ConstructQueryTables()
End Sub
Private Sub ConstructQueryTables()
Dim GEEmus As DataTable = GemDSConfig.Tables("UserEmulators")
Dim SysSetups As DataTable = GemDSConfig.Tables("SystemsSetups")
Dim query = From SysSetup In SysSetups.AsEnumerable() From GEEmu In GEEmus.AsEnumerable() _
Where SysSetup.Field(Of Integer)("UserEmuID") = GEEmu.Field(Of Integer)("ID")
Select SysSetup
FullSystem = query.copytodatatable()
End Sub
end class
并导致错误:
System.MissingMemberException: Public member 'copytodatatable' on type 'WhereSelectEnumerableIterator(Of VB$AnonymousType_0(Of DataRow,DataRow),DataRow)' not found.
从阅读开始,这似乎与Select
返回数据的方式(不是DataRow
格式)有关,copytodatatable
需要DataRow
格式。我已尝试按照标记的解决方案here。
但是,第一个没有用,第二个(对象粉碎机)有点超出我的水平(我无法想象如何使用链接的MS文章中的代码)。
难倒在这一个:
1)感觉能够通过查询来处理我的DataSet
可能会更好,但是如上所述,无法想象如何使用我的设置中的数据连接。如果更好,如果是,如何实现?
2)如果以上不适用,如何将linq查询结果返回到数据表?我刚刚开始,所以上面的MS链接有点超出我的理解范围。我的代码已上传到codeplex。
感谢