如何使用datareader获取上一个列值

时间:2015-01-30 08:54:36

标签: sql sql-server vb.net

您好我正在尝试获取我的列的先前值,因此我可以进行简单的计算,我的代码就是这样。

 ElseIf data_reader("PCT_HFO") < 0 Then

实际ROBS

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

新代码 Previous_PCT_Distance = 0

同时...... Actual_Distance = data_reader(“距离运行 - NM”)+ data_reader(“PCT_Distance”) - Previous_PCT_Distance 做东西.... Previous_PCT_Distance = data_reader(“PCT_Distance”) 环

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

数据读取器是仅向前的迭代器。我建议你使用Datatable,而不是数据阅读器。但是如果你坚持使用数据阅读器,你可以使用一个新的变量,比如PreviousPCTDistance,它存储以前的datareader值的副本。对于第一次迭代,将此变量的值初始化为nothing或0。在每个循环结束时,使用datareaders值更新此变量,如:

PreviousPCTDistance = data_reader("PCT_Distance"),

因此,当您的条件满足时,要使用此前一个值:

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

答案 1 :(得分:0)

当您使用数据阅读器时,您将循环遍历行,因此您只需要第二个变量之前的值,对于第一个记录,该值最初为0。

然后在设置Actual_ROBS

后将此变量设置为数据读取器值