Vb.net 无法根据字段值从数据表中获取不同的记录

Vb.net 无法根据字段值从数据表中获取不同的记录,vb.net,datatable,vb.net-2010,Vb.net,Datatable,Vb.net 2010,使用VB.NET,我试图基于几个字段删除重复的datatable记录。我使用distinct,似乎只能检索新数据表中的字段。这里有一个例子 Public Shared Function GetDistinctRecords(dt As DataTable, Columns As String()) As DataTable Dim dtUniqRecords As New DataTable() dtUniqRecords = dt.DefaultView.ToTable(Tru

使用VB.NET,我试图基于几个字段删除重复的datatable记录。我使用distinct,似乎只能检索新数据表中的字段。这里有一个例子

Public Shared Function GetDistinctRecords(dt As DataTable, Columns As String()) As DataTable
    Dim dtUniqRecords As New DataTable()
    dtUniqRecords = dt.DefaultView.ToTable(True, Columns)
    Return dtUniqRecords
End Function
下面是我调用该方法的方式

Dim TobeDistinct As String() = {"Date", "StartTime", "RoomID", "Room"}
Dim dt As DataTable = GetDistinctRecords(initialDt, TobeDistinct)

我需要检索大约有30列的完整记录。唯一不同的列是我在TobeDistinct字符串数组中指定的列。

您可以对现有数据表进行复杂查询

Private Function DistinctList(dTable As DataTable, dt As Date, time As String, _
                              RoomId As Integer, room As String) As List(Of DataRow)
 Dim query = (From dr As DataRow In dTable.Rows Where
              Date.Parse(dr("date").ToString) = dt And
              dr("StartTime").ToString = time And
              Convert.ToInt32(dr("RoomId").ToString) = RoomId And
              dr("Room").ToString = room).ToList

 Return query
End Function

即使在数据库中也不可能做到这一点。如果两行的Date/StartTime/RoomID/Room相同,但所有其他列都不同,会发生什么情况?谢谢您的帮助。很好的建议。