2015-01-30 3 views
0

Привет, я пытаюсь получить предыдущее значение моего столбца, чтобы я мог сделать простой расчет, мой код такой.Как получить предыдущее значение столбца с помощью datareader

ElseIf data_reader("PCT_HFO") < 0 Then 

фактические грабит

Actual_ROBS = data_reader("Distance Run - NM") 
+data_reader("PCT_Distance")-"Previous value of data_reader("PCT_Distance")". 

Новый код Previous_PCT_Distance = 0

DO пока .... Actual_Distance = data_reader ("Расстояние Run - NM") + data_reader ("PCT_Distance") - Предыдущий_PCT_Distance Делают вещи .... Предыдущий_PCT_Distance = data_reader ("PCT_Distance") Петля

Любые идеи?

ответ

0

Как вы используете считыватель данных, вы зацикливаете строки, поэтому вам нужна только вторая переменная предыдущего значения, которая изначально равна 0 для первой записи.

Вы установите эту переменную в значение считывания данных после того, как вы установили Actual_ROBS читатели

+0

Удивительная мысль поблагодарить вас так просто еще одна вещь, чтобы прояснить это. Я инициализирую эту переменную с 0 и, конечно, у меня есть datareader в цикле, но как она получит предыдущее значение? Он получает предыдущую причину 0 в начале? – asbanoglou

+0

Изначально значение равно 0. Таким образом, ваш расчет - Actual_ROBS = data_reader («Distance Run - NM») + data_reader («PCT_Distance») - Предыдущее значение – Ewan

+0

. Я не понимаю, как это будет из предыдущего значения из моей таблицы. Это потому, что мой новый datareader имеет 0 в качестве первого значения? – asbanoglou

1

данных являются только вперед итераторы. Я предлагаю вам использовать Datatable, а не для чтения данных. Но если вы настаиваете на использовании устройства чтения данных, вы можете использовать новую переменную, например, PreviousPCTDistance, которая хранит копию предыдущего значения datareader. Инициализируйте значение этой переменной до нуля или 0 для первой итерации. В конце каждого цикла, обновите эту переменную со значением DataReaders, как:

PreviousPCTDistance = data_reader("PCT_Distance"), 

Итак, когда ваше условие, чтобы использовать эту предыдущее значение:

Actual_ROBS = data_reader("Distance Run - NM")+data_reader("PCT_Distance")- PreviousPCTValue 
+0

ПредыдущийPCTDistance = data_reader ("PCT_Distance"), что переменная будет инициализирована вне цикла правильно? И также мне нужно снова набрать этот ПредыдущийPCTDistance = data_reader («PCT_Distance») после правильного вычисления Actual_robs, чтобы я мог получить новое значение расстояния для следующий цикл? – asbanoglou

+0

@asbanoglou, Да, Инициализировать PreviousPCTDistance вне цикла. 0, если это числовое значение или ничего, если оно не является числовым. И как раз перед тем, как вы закончите цикл, обновите это значение: Для 'Условия ПредыдущийPCTDistance = data_reader ("PCT_Distance"), Следующий – Insane

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