【问题标题】:If, else statement to override a null in webmatrixif, else 语句覆盖 webmatrix 中的 null
【发布时间】:2013-09-10 18:56:07
【问题描述】:

我认为这将是替换 null 的正确代码,但它给了我一个错误“当前上下文中不存在名称 'subt2'”

var SQLSELECT2 = "SELECT SUM(Price) FROM ProductEntered WHERE TransID=@0";
var sub2 = db.QueryValue(SQLSELECT2, transaction_id);

if(sub2 == null){
    var subt2 = 0.00;
    }
else{
    var subt2 = sub2;
    }

在页面中我有@subt2 我决定尝试解释我在做什么,希望能得到更好的回应。我有一个可以添加产品的页面。它使用 TransID 在表中创建一个条目作为对该页面的引用。此页面从行具有此 TransID 的价格中提取 SUM。当表格中没有输入具有此 TransID 的产品时,问题就出现了。当没有要显示的数据时,我需要它输出 0.00。

【问题讨论】:

    标签: razor sql-server-ce webmatrix dbnull


    【解决方案1】:

    花了我很长时间,但我找到了几篇文章并将它们放在一起。这是代码:

    var SQLSELECT2 = "SELECT SUM(Price) FROM ProductEntered WHERE TransID=@0";
    var sub2 = db.QueryValue(SQLSELECT2, transaction_id);
    
    if(String.IsNullOrEmpty(Convert.ToString(sub2)))
    {
        sub2 = 0.00;
    }
    

    【讨论】:

      【解决方案2】:

      我会尝试如下替换它:

      var sub2 = db.QueryValue(SQLSELECT2, transaction_id);
      
      var result = sub2 == null ? 0 : sub2;
      return result;
      

      【讨论】:

        【解决方案3】:

        当您使用 var(或 int、double、string 等)定义变量时,它仅存在于定义它的大括号 {} 中。因此,由于您在大括号内定义它,因此页面稍后将不可用。更好的是:

        var SQLSELECT2 = "SELECT SUM(Price) FROM ProductEntered WHERE TransID=@0";
        var sub2 = db.QueryValue(SQLSELECT2, transaction_id);
        
        var subt2 = 0;
        if(sub2 == System.DBNull){
            subt2 = 0.00;
        }
        else
        {
            subt2 = sub2;
        }
        

        【讨论】:

        • 用你写的代码吃了底部它给出了一个错误如果我用 var 替换 double 它不会隐式地将类型“System.DBNull”转换为“double”它不会给出错误但它也不会显示任何事物。上面的代码给出了类似的错误。
        • 哇 - 我个人认为 QueryValue 有一个错误,因为它有时返回 null,有时返回一个值,有时返回 System.DBNull,奇怪的是它与 null 不同。我不确定我自己的代码现在如何工作。无论如何,我已经修改了我的代码以反映 QueryValue 在 SUM 上的工作方式。
        • 遗憾的是,您必须查看此帖子 stackoverflow.com/questions/4488727/what-is-the-point-of-dbnull/… 以获取有关 System.DBNull 的更多信息
        • 使用更新后的代码会出现以下错误:“System.DBNull”是“类型”,在给定的上下文中无效
        猜你喜欢
        • 2021-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        • 2015-10-28
        • 2017-02-05
        • 1970-01-01
        相关资源
        最近更新 更多