2016-01-13 3 views
0

У меня есть list(of DataRow) (каждая содержащаяся строка относится к той же таблице).Список заказов (из DataRow) по столбцу String как целое, VB

Каждая строка содержит .item("number") как String. Этот товар представляет собой Number.

Что мне нужно это функция быстрой, что orders the rows внутри списка по .item("number")Ascending (1-> 2-> 3-> 4-> 5)

EDIT Ниже приводится ответ мною на вопрос, заданный по моему вопросу по этому вопросу! (Вау, это много вопросов ..)

grpname | grpID | LocationID | info1 | info 2 | Info 3 
    yaya | 2  | 4   | asd | asd  | dasd 
    yaya | 2  | 2   | asd | asd  | dasd 
    yaya | 2  | 3   | asd | asd  | dasd 
    yaya | 2  | 1   | asd | asd  | dasd 
    yaya | 2  | 5   | asd | asd  | dasd 
    yo  | 6  | 4   | asd | asd  | dasd 
    yo  | 6  | 1   | asd | asd  | dasd 
    yo  | 6  | DBNULL  | asd | asd  | dasd 
    yo  | 6  | 2   | asd | asd  | dasd 
    yo  | 6  | 6   | asd | asd  | dasd 

В основном это то, что у меня есть. Я получаю информацию выше, читая базу данных стороннего приложения. Моя задача - разместить их в красивой таблице слов в порядке, заданном пользователем в упомянутом стороннем инструменте. LocationID принадлежит к grpID, поэтому существует определенный порядок рядов внутри группы, оставаясь в том же Datatable. Я был в состоянии заказать DataRows в правильных группах. Чтобы решить проблему ввода строк в правильное положение в группах, программно поместить все строки группы в list(of Datarow), который помещается в List(of List(of DataRow)). Как только у меня есть все строки, упорядоченные правильно внутри Lists, я их переупорядочу внутри EDIT DataTable

я, наконец, нашли решение себя, используя дополнительную колонку со следующим содержанием (описание в виде текста)

Try to put CInt(LocationID) -> if Catch happens (DBNULL): Put 999 
After thats done: Use DataView to Order DataTable by grpID, newColumn 

Первичная она пробует на заказ по GRP, и, когда есть больше чем одна строка одной группы он заказывает newColumn.

ответ

0

Я удивляюсь, почему они находятся в List(Of T), когда вы можете легко манипулировать ими в DataTable. Учитывая список, названный rowList:

rowList = rowList.OrderBy(Function(q) q.Item("number")).ToList 
+0

Я попытался объяснить, почему я не использую DataTable. Объяснение находится в нижней части Вопроса. Надеюсь, я смог объяснить это понятным образом. Я попробую эту функцию. Не могли бы вы объяснить мне, что именно делает эта часть? '(Функция (q) q.Item (" number "))'. – Luke

+0

Похоже, это упорядочивает столбец как строку. Мне нужно, чтобы он был заказан как Integer. Также есть еще одна проблема, о которой я еще не упомянул; DBNull нужно обрабатывать каким-то образом – Luke

+0

По-моему, вам нужно использовать данные. Столбцы данных могут быть отнесены к типам, требуемым для i.e. Затем вы сможете делать все, что вам нужно, сортировать, фильтровать и т. Д. Используя данные datatable, вы сможете указать OrderBy grpID, LocationID, чтобы данные сортировались по grpID, и если у вас их много, отсортированы по LocationID. – Mych

 Смежные вопросы

  • Нет связанных вопросов^_^