【发布时间】:2016-02-06 05:02:32
【问题描述】:
我的 ASP.NET 应用程序中有两个由 csv 文件填充的数据表,我正在尝试将两者合二为一。
界面如下:
当我单击“合并数据”按钮时,它应该合并 test1.csv 和 test2.csv 哪种有效,但看起来像这样:
所以我的问题是如何对齐这两个数据表,以便所有数据都在同一行上?
以下是合并数据按钮的代码:
List<string> filepaths = new List<string>();
List<DataTable> allTables = new List<DataTable>();
DataTable mergedTables = new DataTable();
int rowCount = grdFiles.Rows.Count;
for (int i = 0; i < rowCount; i++)
{
string filename = grdFiles.Rows[i].Cells[0].Text;
filepaths.Add(Server.MapPath("~/Uploads/") + filename);
}
foreach(string path in filepaths)
{
DataTable dt = new DataTable();
//converts csv into datatable
dt = GetDataTableFromCsv(path, true);
//add table to list of tables
allTables.Add(dt);
}
foreach(DataTable datatable in allTables)
{
//Merge each table in the list to the mergedTables datatable
mergedTables.Merge(datatable);
}
csvUploadResults.DataSource = mergedTables;
csvUploadResults.DataBind();
提前感谢您的帮助:)
【问题讨论】:
-
两个表是否都与某个唯一键相关?
-
不,表中的数据是相关的,但不共享键。
-
那你打算如何进行合并?你怎么知道如何将 test1 中的一行连接到 test2 中的一行?
-
mergedTables被填满了吗? -
mergedTables.Merge(datatable);在最后一个 foreach 块中