【问题标题】:If Condition not Working ASp.Net?如果条件不工作 ASp.Net?
【发布时间】:2013-07-07 13:10:10
【问题描述】:

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

我的条件是,

 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

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

希望您的建议提前谢谢

【问题讨论】:

  • 这两个条件之间有代码吗?
  • 感谢所有我彻底检查我得到“0”这个值这就是为什么它不能识别值 Trim() 帮助我 1

标签: c# asp.net if-statement int


【解决方案1】:

你可以转换成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() 获得的值

【讨论】:

    【解决方案2】:

    两个条件之间没有代码,所以第一个按预期取值,然后第二个被评估直到 != 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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 2012-07-11
      • 1970-01-01
      相关资源
      最近更新 更多