0

我试图在进入之前检查条件,但它进入错误的条件

我的条件是

 if (Target.Tables[0].Rows[0]["T_B_CX"].ToString() == "0" && Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]) >= 100000)

if (Target.Tables[0].Rows[0]["T_B_CX"].ToString() != "0" && Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]) > 10000000)

这些值是,

T_B_CX = 0 and T_B_C = 2500000000

它必须进入我提到的第一个条件,但它正在进入第二个条件???

希望您的建议提前谢谢

4

2 回答 2

0

您可以转换为 int 并进行如下比较

if (Convert.ToInt(Target.Tables[0].Rows[0]["T_B_CX"].ToString()) == 0 && Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]) >= 100000)

可能是当我们获得单元格值的 ToString 时,它返回的字符串不完全等于"0",调试并查看您获得的值Target.Tables[0].Rows[0]["T_B_CX"].ToString()

于 2013-07-07T13:20:07.973 回答
0

两个条件之间没有代码,因此第一个按预期取值,然后第二个被评估直到 != 0。

尝试写这样的东西

// Convert everything just one time here 
int tbcx = Convert.ToInt32(Target.Tables[0].Rows[0]["T_B_CX"]);
long tbc = Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]);

if(tbcx == 0 && tbc >= 100000)
    // code here 
else if(tbcx != 0 && tbc > 2500000000)
    // code here

还要尽量避免将整数值转换为字符串,然后检查字符串。
这没有道理。如果整数存储在该表中,则将其转换为整数并检查整数。

于 2013-07-07T13:22:07.947 回答