我试图解决这个Example,它展示了如何将一个数据表与另一个数据表合并。我的问题是,一个数据表是一行基线值,必须从原始数据的每行中减去并放在另一个基线偏移数据表中。 基线数据表没有日期列,但其他两个数据表没有。我意识到我使用了连接函数和Date列(这是错误的),但是当列不相等时我不熟悉。
数据表如下所示
原始数据
Date | A | B
12/29/14 | 5.5 | 5.8
12/30/14 | 5.4 | 5.6
基线
A | B
5.0 | 5.3
基线抵消
Date | A | B
12/29/14 | 0.5 | 0.5
12/30/14 | 0.4 | 0.3
try
{
con.Open();
System.Data.DataTable dtData = new System.Data.DataTable();
System.Data.DataTable dtBaseline = new System.Data.DataTable();
var dtBaseline_Offset = from p in dtData.AsEnumerable()
join q in dtBaseline.AsEnumerable() on p.Field<string>("Date") equals q.Field<string>("Date") into UP
from q in UP.DefaultIfEmpty()
select new
{
date = p.Field<string>("Date"),
MeasA = p.Field<float>("A") - q.Field<float>("A"),
MeasB = p.Field<float>("B") - q.Field<float>("B")
};
string stringsql1command = "SELECT * from Baseline_Offset";
string stringsql2command = "SELECT * from Baseline";
SQLiteDataAdapter sda1 = new SQLiteDataAdapter(stringsql1command, con);
SQLiteDataAdapter sda2 = new SQLiteDataAdapter(stringsql2command, con);
System.Data.DataTable dt3 = new System.Data.DataTable();
sda1.Fill(dt3);
Baseline_OffsetDataGridView.DataSource = dt3;