【问题标题】:Check multiple condition using C# in aspnet在asp net中使用C#检查多个条件
【发布时间】:2020-06-30 10:15:59
【问题描述】:

在 MySQL 表上我已经记住了这些值:

+---+-------+------+
| A | B     | C    |
+---+-------+------+
| 0 | 16,11 | 3,08 |
+---+-------+------+
1 row in set

我需要在 aspnet 中使用 C# 检查这个条件:

if (A < 0.1 && B > 1 && (C >= 1 && C <= 4))

当所有条件都为真时,我需要将 D 列设置为真。

A、B 和 C 列设置为十进制 10,2 值。

但是输出是假的。

我该如何解决这个问题?

编辑#01

            A = Convert.ToDouble(dt.Rows[0]["A"]);  //a
            B = Convert.ToDouble(dt.Rows[0]["B"]);  //b
            C = Convert.ToDouble(dt.Rows[0]["C"]);  //c

编辑#02

【问题讨论】:

  • 您的条件 "(A 1 && (C >= 1 && C
  • @Golia 在您的数据库中 B 列和 C 列包含多个值,无法转换为双精度值。请看我的回答
  • @NitikaChopra 感谢回复,请参阅我的第一个问题中的Edit #02Split方法报告错误
  • @Golia ...你应该转换成字符串 Convert.ToString(dt2.Rows[0]["A"]).Split(',');你可以试试这个

标签: c# mysql sql sql-update


【解决方案1】:

您似乎想要一个简单的update 查询:

update mytable
set d = 1
where a < 0.1 and b > 1 and c >= 1 and c <= 4

这会将满足条件的d 设置为1

如果要设置为01,取决于是否满足条件:

update mytable
set d = (a < 0.1 and b > 1 and c >= 1 and c <= 4)

【讨论】:

    【解决方案2】:

    您的条件为真,应该可以正常工作。

    您确定 A、B、C 值吗?

    【讨论】:

    • 感谢您的回复,请参阅我的第一个问题中的Edit #01
    【解决方案3】:

    希望这段代码对你有帮助:-

    Double[] Aarr= A.Split(',');
    Double[] Barr= B.Split(',');
    Double[] Carr = C.Split(',');
    
    long ACount = Aarr.Where(x => x < 0.1).Count();
    long BCount = Barr.Where(x => x > 1).Count();
    long CCount = Carr.Where(x => x >= 1 && x <= 4).Count();
    
    if((ACount == 1) && (BCount == 1) && (CCount == 1)
    {
        //Your Code
    }
    

    谢谢!!!

    【讨论】:

      猜你喜欢
      • 2021-10-05
      • 2017-08-08
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 2016-10-28
      • 2020-05-12
      相关资源
      最近更新 更多