Vb.net если цикл while является лучшим способом, чтобы проверить значения в каждой строке?
У меня была эта проблема прошлой ночью. Мне нужно прочитать каждую строку
Найти "А"
Если первая строка имеет значение True, то отображение
Если вторая строка имеет то же значение что и первая она будет проигнорирована и перейдет к следующей строке
и так далее ...
Далее идет
Найти "Б"
Если следующая строка не равна в текущей строке, то true и обработайте сначала значение(с переменной), а затем проверьте, совпадает ли следующая строка со следующей строкой
Если нет повторного отображения значения, то будет отображаться последнее обнаруженное значение "B"
Это примерная таблица, которая у меня есть
TABLE ID Time Status 42 2018-05-04 08:00:00 A 42 2018-05-04 09:00:00 A 42 2018-05-04 11:00:00 B 42 2018-05-04 13:00:00 A 42 2018-05-04 15:00:00 B 42 2018-05-04 18:00:00 B
Выход-фильтр со временем и статусом с датой
OUTPUT ID Time Status 12 2018-05-04 08:00:00 A 12 2018-05-04 11:00:00 B 12 2018-05-04 13:00:00 A 12 2018-05-04 18:00:00 B
Что я уже пробовал:
Dim cmd As New SqlCommand("SELECT Name, Date, Time, Status From Table") Dim ad As New SqlDataAdapter(cmd) Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader() Dim dt As New DataTable For Each row As DataRow In dt.Rows For Each Item In dt.Rows Dim value = row.ToString("Status") If value = "A" Then 'If true Dim dtr1 As DataRow dtr1 = dtt.NewRow() dtt.Rows.Add(row) If Item.Count > 1 Then 'If another value is same as "A" 'Nothing/Ignore ElseIf row(i).Item("Mode").ToString = "B" Then 'If the value is "B" If row(i).Item > 1 Then 'But need to scan if theres another "B" If row(i).Item > 1 Then 'Still Add the value even its "A" or "B" in the same date and foreign key row = dtt.NewRow() dtt.Rows.Add(row) Else 'If theres no another "B" row = dtt.NewRow() dtt.Rows.Add(row) End If Else 'If theres no another "B" detected row = dtt.NewRow() dtt.Rows.Add(row) If row(i).Item > 1 Then 'Still Add the value even its "A" or "B" in the same date and foreign key row = dtt.NewRow() dtt.Rows.Add(row) End If End If End If End If Next Next
Это не делает никакого отображения :( я могу вам, пожалуйста, сказать мне, что не так с моим кодом
Спасибо Вам заранее за помощь.
Извините за мой плохой английский