使用ASP.NET razor和SQL Server 2008 R2
我有一个声明的局部变量:
var tsmMtd = db.QueryValue("
SELECT b.Name, SUM(subtotal) totalSUM
FROM DR_TRANS a
INNER JOIN Staff b ON a.Salesno = b.Staffno
WHERE a.salesno in (12,23,28,30)
AND a.TRANSDATE >= dateadd(m, datediff(m, 0, getdate()), 0)
AND a.REF3 = 'Invoice'
GROUP BY b.Name
ORDER BY totalSUM DESC
");
现在从表中返回一个名称数组,按销售额排序。稍后在HTML中调用它
@tsmMtd.ToString()
打印最顶层的名称。好的,一切都好。 NOW ....
我需要根据该顶级销售人员格式化页面文本。如果他们 是顶级销售人员,我希望他们的名字变成蓝色。这就是我对销售人员的“实际销售额”数字所做的:
<span class=@(salesval12 > 6000 ? "blue" : "red")>@salesval12.ToString("C")</span>
如果文本超过6000值,则可以更改文本的颜色。 (红色和蓝色类定义在页面的上方)。所以,我这样做了:
<span class=@(tsmMtd = "CHARLIE JONES" ? "blue" : "red")>Charlie</span>
但在加载失败时说编译器错误消息: CS0029:无法将类型'string'隐式转换为'bool'
好的,我需要知道的是
任何和所有帮助都非常感激。
答案 0 :(得分:2)
而不是
@(tsmMtd = "CHARLIE JONES" ? "blue" : "red")
应该是
@(tsmMtd == "CHARLIE JONES" ? "blue" : "red")
你写了一个等号而不是两个。只有一个它只保存CHARLIE JONES
到tsmMtd
变量,然后尝试将该字符串变量作为条件进行比较,并且编译器显示有关它的错误