2015-08-14 5 views
0

Я хочу, чтобы результаты запроса DataSet передавались в массив.VB.net DataSet to Array

Вот мой запрос:

Это единственный способ, которым я знаю, чтобы отобразить содержимое моего запроса: Trans_TableTableAdapter.SelectDistinct (DBDataSet.Trans_Table)

Моя проблема Я не знаю, как применить этот запрос к массиву.

Это последняя часть моей головоломки, мне действительно нужна помощь для завершения моего проекта. Спасибо заранее.

+0

Это содержит много столбцов с различными типами данных, о каком массиве вы думаете? Кроме того, 'DataTable' обычно содержит несколько строк, и каждая строка имеет несколько столбцов. Вы хотите 'List (Of Object())'? –

+0

мой запрос извлекает только один столбец, выделенный. –

ответ

3

Итак, вы хотите получить String() из запроса, который возвращает один столбец? Вы можете использовать LINQ:

Dim accounts As String() = DBDataSet.Trans_Table.AsEnumerable(). 
    Select(Function(row) row.Field(Of String)("Account")). 
    ToArray() 

Если вы предпочитаете синтаксис запроса:

Dim accounts = From row In DBDataSet.Trans_Table.AsEnumerable() 
       Select row.Field(Of String)("Account") 
Dim accountArray As String() = accounts.ToArray() 

Так что, как представляется, сильно типизированных DataSet должен быть назван столбец, который можно использовать непосредственно:

Dim accounts = From row In DBDataSet.Trans_Table Select row.Account 
Dim accountArray As String() = accounts.ToArray() 
+0

Я хочу использовать мой отдельный запрос, возможно ли это? В столбце «Моя учетная запись» есть дубликаты, я хочу избавиться от дубликатов. –

+0

@MarcIntes: Да, конечно. Вам просто нужно выполнить доступный метод, как вы уже сделали: 'Trans_TableTableAdapter.SelectDistinct (DBDataSet.Trans_Table)'. После этой строки вы можете использовать мой код выше. –

+0

Я протестировал его. Спасибо, это работает. –