У меня есть сценарий, в котором я должен применить отдельный фильтр к DataTable
и найти только строки, которые являются отличными, Я использую dt.DefaultView.ToTable(True, Columns)
этот оператор, но не влияет.Отличительные строки из VB.Net DataTable
Вот мой кусок кода ..
Try
Dim dTable As New DataTable()
dTable.Columns.Add("AutoID")
dTable.Columns.Add("AnotherID")
dTable.Columns.Add("CitY")
Dim row As DataRow = Nothing
For i As Integer = 0 To 4
row = dTable.NewRow()
row("AutoID") = i + 1
row("AnotherID") = i + 10
row("City") = "Vetican"
dTable.Rows.Add(row)
Next
dTable.Rows.Add(6, "11", "Oslo")
dTable.Rows.Add(7, "12", "Toronto")
Dim TobeDistinct As String() = {"AnotherID"}
Dim dtDistinct As DataTable = GetDistinctRecords(dTable, TobeDistinct)
Catch ex As Exception
End Try
и способ ..
Public Shared Function GetDistinctRecords(ByVal dt As DataTable, ByVal Columns As String()) As DataTable
Dim dtURecords As New DataTable()
dtURecords = dt.DefaultView.ToTable(True, Columns)
Return dtURecords
End Function
Вот снимок экрана, который я хочу ..
говорит 'Невозможно привести объект типа 'WhereSelectEnumerableIterator'2 [System.Data.DataRow, System.String] к типу 'System.String []' .' – DareDevil
Я хочу сохранить все четкие строки на основе столбца «AnotherID» – DareDevil
@DareDevil: тогда вы используете .NET 3.5, поэтому Visual Studio 2008. Вы можете использовать 'r.SetField (« Город », String. Присоединиться (",", cities.ToArray())). Я знаю, но какую строку вы хотите сохранить, если у вас есть три дубликата в соответствии с столбцом «AnotherID»? Мой подход выше конкатенирует все города с запятой. –