Oracle C#-在ExecuteReader之后提交

问题描述

我有两个表: 表1(xID,xKEY,xAMOUNT,xCLEAR)

(1,A,10)

(2,B,100)

(3,C,1000)

(4,A,50)

TABLE2(xID,xKEY,xAMOUNT,xCLEAR)

(1,A,2)

(2,A,7)

(3,A,100)

我有两个循环:

cmd1.CommandText = "SELECT * FROM TABLE1 WHERE xCLEAR IS NULL";

Reader1 = cmd1.ExecuteReader();

while (Reader1.Read())

{

if (Reader1.IsDBNull(0)) { T01_xID = 0; }       else { T01_xID      = Reader1.GetDouble(0); }

if (Reader1.IsDBNull(1)) { T01_xKEY = ""; }     else { T01_xKEY     = Reader1.GetString(1); }

if (Reader1.IsDBNull(2)) { T01_xAMOUNT = 0; }   else { T01_xAMOUNT  = Reader1.GetDouble(2); }

if (Reader1.IsDBNull(3)) { T01_xCLEAR = ""; }   else { T01_xCLEAR   = Reader1.GetString(3); }


cmd2.CommandText = "SELECT * FROM TABLE2 WHERE xCLEAR IS NULL";

Reader2 = cmd2.ExecuteReader();

while (Reader2.Read())

{

    if (Reader2.IsDBNull(0)) { T02_xID = 0; }       else { T02_xID      = Reader2.GetDouble(0); }

    if (Reader2.IsDBNull(1)) { T02_xKEY = ""; }     else { T02_xKEY     = Reader2.GetString(1); }

    if (Reader2.IsDBNull(2)) { T02_xAMOUNT = 0; }   else { T02_xAMOUNT  = Reader2.GetDouble(2); }

    if (Reader2.IsDBNull(3)) { T02_xCLEAR = ""; }   else { T02_xCLEAR   = Reader2.GetString(3); }

    if (T01_xKEY == T02_xKEY)

    {

        cmd3.CommandText = "UPDATE TABLE1 SET xAMOUNT='" + (T01_xAMOUNT - T02_xAMOUNT) + "' WHERE xID='" + T01_xID + "'";

        Reader3 = cmd3.ExecuteReader();

        cmd3.CommandText = "UPDATE TABLE2 SET xCLEAR='DONE' WHERE xID='" + T02_xID + "'";

        Reader3 = cmd3.ExecuteReader();

    }

}

}

但是,第(1,A,10)行->(1,A,3)

我想在每个循环的cmd3.ExecuteReader之后提交:

TABLE1(1,A,10)与TABLE2(1,A,2)-> TABLE1(1,A,8)

之后,

(1,A,8)与(1,A,7)-> TABLE1(1,A,1)

请帮助我!

非常感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...