【发布时间】:2018-01-30 06:10:54
【问题描述】:
我有一个像下面这样的数据表,它不是固定的,它可以包含 n 列。我需要根据列名比较列值并更新其他行值
例如
dtFinYearValues
dtColumnName | 2017AU | 2017CN | 2018AU | 2018CN | 2019CN | 2020CN
--------------------------------------------------------------------
Value | -1234 | -500 | -300 | 1000 | 1000 | -500
LatestValue | -1234 | -500 | -300 | 500 | 1000 | -500
2018CN 的最新值 --> 2017CN 值 (-500) 和 2018CN 值(1000) 之和。
对于上述数据表,我需要比较列名并相应地更新值 条件:
1) 如果值为 -ve,则使用相同的值更新 LatestValue。
2) 如果值为+ve,则检查同一国家的上一个财政年度是否存在任何-ve 值,例如(在上述数据表中,2018CN 值为+ve,但 2017CN 值为负数,因此 2017CN 和 2018CN 之和为2018CN更新-->最新值。)
我无法对列号进行硬编码,因为可以有不同的国家/地区财政年度组合,我只需将一个国家的价值与同一个国家/地区进行比较。 我如何在 vb.net 中编写代码?
【问题讨论】:
-
“我需要比较列名”。嗯,和什么比较?
-
2018CN的值为1000,2018CN要更新latestValue的值需要检查2017CN是否存在。如果存在,我需要检查该值是否为 -ve 如果是 -ve,我需要将 2017CN 和 2018CN 的值相加,并将值更新为 2018CN 的最新值,这在上面的数据表中完成。
-
示例都很好,但如果您希望我们建议如何在代码中实现这些规则,我们需要知道实际规则是什么。您是不是在说,实际上没有说,对于每一列,您需要将名称分解为一个四位数的数字和一个两个字母的字符串,然后检查是否存在具有相同字符串和小于 1 的数字的列?如果那是你需要做的,那么这就是你应该说你需要做的。如果您需要其他内容,请以类似的详细信息进行描述。示例出现在规则之后,而不是之前。因此,术语“作为示例”。
标签: asp.net vb.net datatable datarow datacolumn