如何在 Oracle 中的数据中使用 C# 进行计算?



我在Oracle中有一个包含大量数据的表。在以下结构中:

code_value    date_value     value
1             20/07/2017      10.5
1             19/07/2017      11.6
2             20/07/2017      1000.22
2             18/07/2017      1700.44

我有另一个表定义了此数据的测试: 其结构如下:

code_value      check_rule      check_period    connection_rule
1                16%            w               or
1                30%            m               or
1                50%            y               or
2                130%           w               and
2                110%           6m              and

*附言"check_period":W - 表示周,M - 表示月份,Y - 表示年份。
** 附言我仍在争论是否将此列分为两列:一列用于时间量,另一列用于时间类型(例如:6,m(。

我想在 C# 上获取测试表并在带有数据的表上运行它。
但我不知道如何开始做:
如何从表中获取值并使用它进行计算? 例如:
如果我取第一行,check_rule 16%,我会做:
var a = check_rule[0];
如何检查每周增加16%?
以同样的方式如何在"connection_rule"上使用OR?

我真的希望我的问题足够清楚。

谢谢你!

OracleConnection conn = new OracleConnection("Your Connection string");
conn.Open();
DataSet dataSet = new DataSet();
OracleCommand cmd = new OracleCommand(
"SELECT * FROM TABLE1 t inner join TABLE2 t1 on t.code_value = t1.code_value"
);
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
using (OracleDataAdapter dataAdapter = new OracleDataAdapter())
{
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataSet);
}
DataTable dt = ds.Tables[0];
//loop through table's rows/columns
var myVal = ParseToDouble(dt.Rows["value"].ToString());
var checkRule = ParseToDouble(dt.Rows["check_rule"].ToString());
if(myVal < checkRule)
doSomething();

public double ParseToDouble(string s)
{
return decimal.Parse( s.TrimEnd('%') ) / 100M;
}

相关内容

  • 没有找到相关文章

最新更新