【发布时间】:2012-12-23 15:35:48
【问题描述】:
在问我问题之前先了解一下背景。
我使用 sql compact,我有两个表, 第一张表(IssueEmp)
第二张表(RecEmp)
SqlCeDataAdapter adap = new SqlCeDataAdapter("SELECT * FROM RecEmp", cn);
DataTable dat = new DataTable();
DataSet receice = new DataSet();
adap.Fill(receice);
adap.Fill(dat);
SqlCeDataAdapter adap1 = new SqlCeDataAdapter("SELECT * FROM IssueEmp", cn);
DataTable dat1 = new DataTable();
DataSet issue = new DataSet();
adap1.Fill(issue);
adap1.Fill(dat1);
我正在使用 linq 在 RecEmp 和 IssueEmp 之间执行连接
var res = from t1 in receice.Tables[0].AsEnumerable()
join t2 in issue.Tables[0].AsEnumerable()
on new
{
CNo = t1.Field<int>("CNo"),
Empid = t1.Field<int>("EmpID")
}
equals new
{
CNo = t2.Field<int>("CNo"),
Empid = t2.Field<int>("EmpID")
}
select new
{
SNo = t1.Field<int>("SNo"),
ChNo = t1.Field<int>("CNo"),
EmpID = t1.Field<int>("EmpID"),
DateIssued = t2.Field<DateTime>("Date"),
RMIssued = t2.Field<string>("RMCode"),
QuantityIssued = t2.Field<double>("Quantity"),
DateReceived = t1.Field<DateTime>("Date"),
RMCodeReceived = t1.Field<string>("RMCode"),
QuantityReceived = t1.Field<double>("Quantity")
};
我从上面的 linq 查询得到的输出是
但是我不知道如何得到发出数量的总和,也得到接收数量的总和,最后将两者之间的差值作为 diff。要求如下。
【问题讨论】:
-
@A.V 为什么我应该使用 DataSet JOIN 辅助类,当它可以用 linq 完成时......
标签: c# linq sql-server-ce