我有一个名为费用的 sql 表,其中有一个名为 cost 的 int 列。在我的应用程序中,这些数据显示在网格上,每次我使用 linq2sql 插入新行时,该网格都会刷新。我想做的是在我的应用程序中有一个整数变量,它是每次插入一行时成本列中所有字段的总和。
每次我进行插入时,是否有一种简单的方法可以将这些字段与 linq2sql 相加。请尽量避免使用 lambda,因为我还没有开始学习。
谢谢!
我有一个名为费用的 sql 表,其中有一个名为 cost 的 int 列。在我的应用程序中,这些数据显示在网格上,每次我使用 linq2sql 插入新行时,该网格都会刷新。我想做的是在我的应用程序中有一个整数变量,它是每次插入一行时成本列中所有字段的总和。
每次我进行插入时,是否有一种简单的方法可以将这些字段与 linq2sql 相加。请尽量避免使用 lambda,因为我还没有开始学习。
谢谢!
假设您使用查询语法而不是 lambdas,那么您是:
var totalCost = (from expensesRow in dataContext.Expenses
select expensesRow.cost)
.Sum();
实际上与以下内容相同:
var totalCost = dataContext.Expenses
.Sum(x => x.cost);
这dataContext
是您的 Linq2SqlDataContext
类的一个实例。
你今天开始学习 lambdas。http://www.theabsent mindcoder.com/2010/06/linq-sum.html正是你想要的,并使用一个非常简单的 lambda 来实现。通过让你的选择只收集你想要求和的一列整数,你可以在没有 lambda 的情况下逃脱,但为什么要做额外的工作来不学习东西呢?
假设我有一个名为 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
了解更多信息。