2013-03-09 26 views
0

试图使用LINQ查询订单总数和在asp.net其返回的label.TextLINQ查询小数和返回十进制转换成字符串

页面加载:

IQueryable<decimal> OrderTotal = GetTotal(orderId); 
total.Text = OrderTotal.ToString(); 

方法:

public IQueryable<decimal> GetTotal(int? orderId) 
{ 
    var q = _db.Orders.Where(x => x.OrderId == orderId).Select(x => x.Total); 
    return q; 
} 

结果:

SELECT [Extent1].[Total] AS [Total] FROM [dbo].[Orders] AS [Extent1] WHERE [Extent1].[OrderId] = @p__linq__0 

为什么这不会返回总数为数字?而是一个T-SQL查询?

回答

1

IQueriable<T>接口是指T的序列,而不是T的单个实例。如果您试图从数据库中获取单个值并将单个文本框设置为该值,那么这将不起作用。

你的方法的签名更改为

public decimal GetTotal(int? orderId) 
{ 
    var q = _db.Orders.Where(x => x.OrderId == orderId).Select(x => x.Total); 
    return q.FirstOrDefault(); 
} 
+0

谢谢你的工作 – jackncoke 2013-03-09 22:09:35

相关问题