if,else语句覆盖webmatrix中的null

时间:2013-09-10 18:56:08

标签: razor sql-server-ce webmatrix dbnull

我认为这将是替换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的Price中提取SUM。问题在于,没有使用此TransID在表格中输入产品。当没有要显示的数据时,我需要输出0.00。

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

当您使用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;
}

答案 2 :(得分:0)

我会尝试按如下方式替换它:

var sub2 = db.QueryValue(SQLSELECT2, transaction_id);

var result = sub2 == null ? 0 : sub2;
return result;
相关问题