我有一个名为expense的sql表,其中有一个名为cost的int列。在我的应用程序中,这个数据显示在一个网格上,每当我插入一个带有linq2sql插入的新行时,该网格就会刷新。我想要做的是在我的应用程序中有一个整数变量,它是每次插入行时cost列中所有字段的总和。
每次插入时,是否有一种简单的方法可以将这些字段与linq2sql相加。请尽量避免使用lambda,因为我尚未学习。
谢谢!
答案 0 :(得分:2)
假设您使用查询语法而不是lambdas,这里是:
var totalCost = (from expensesRow in dataContext.Expenses
select expensesRow.cost)
.Sum();
其实与:
相同var totalCost = dataContext.Expenses
.Sum(x => x.cost);
此处dataContext
是您的Linq2Sql DataContext
类的实例。
答案 1 :(得分:1)
你今天要学习lambdas。 http://www.theabsentmindedcoder.com/2010/06/linq-sum.html 正好你想要的东西,并使用一个非常简单的lambda到达那里。你可以通过让你的选择只收集你想要总结的一列整数来逃避没有lambda,但为什么额外的工作不能学习东西呢?
答案 2 :(得分:0)
假设我有一个名为users的表,其结构如下:
[Table users] - id | username | points_awarded
然后,我可以通过运行查询找到我为每个用户授予的总分数:
SELECT SUM(points_awarded) as total_points FROM users
您还可以计算有多少用户的点数大于等于N.例如,说N = 500,那么我可以运行:
SELECT COUNT(id) as num_users_with_points FROM users WHERE points_award >= 500
退房:
http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html
http://dev.mysql.com/doc/refman/5.0/en/func-op-summary-ref.html
了解更多信息。