联接DataTable中两列的值
本文关键字:两列 DataTable 联接 | 更新日期: 2023-09-27 18:27:02
连接数据表中两列的值数据表的两列组成一列
我的数据表是
TagNumber, LogNumber Combined
124 1 2
125 1 3
126 2 4
o/p:
TagNumber
124 ~1~2
125 ~1~3
126 ~2~4
combined column is merge from column0 and column1
我不明白我能做什么,请写代码的样本
我没有林克的经验。我添加了列bt hw我可以在一列中合并两列吗
I got answer:
For i As Integer = 0 To dstemp.Tables(0).Rows.Count - 1
dstemp.Tables(0).Rows(i)(0) = dstemp.Tables(0).Rows(i)("TagNumber") & "~" & dstemp.Tables(0).Rows(i)("LogNumber") & "~" & dstemp.Tables(0).Rows(i)("Combined")
next
试着这样做。
dtTwoItems.Columns.Add("Combined", typeof(string), "TagNumber+'/'+LogNumber");
好的,如果你真的想这样做,那么你必须创建一个额外的带有三列的DataTable:
TagNumber、LogNumber组合:如下所示:
private DataTable CreateDataTableColumns()
{
DataTable dtThreeItems = new DataTable();
dtThreeItems.Columns.Add("TagNumber", typeof(String));
dtThreeItems.Columns.Add("LogNumber", typeof(String));
dtThreeItems.Columns.Add("Combined", typeof(String));
return dtThreeItems;
}
现在按如下所示迭代旧数据表以获得组合值:
foreach (DataRow dr in dtTwoItems.Rows)
{
row = dtThreeItems.NewRow();
row["TagNumber"] = dr["TagNumber"].ToString();
row["LogNumber"] = dr["LogNumber"].ToString();
row["Combined"] = dr["TagNumber"].ToString()+"/"+dr["LogNumber"].ToString() ;
dtThreeItems.Rows.Add(row);
}
这就是全部
DataTable就像一个容器。联接表是不合适的。
我建议你用linq。
您是否尝试将新列添加到DataTable,然后通过迭代每个行来组合它们来放置值?
编辑:我不确定Linq或Datatable查询是否有一些内置功能可以做到这一点,但我告诉你的是简单的解决方案。或者,如果您从任何基于SQL查询的数据库中填充数据表,那么使用列的concat编写一个具有第三列的SQL,该第三列具有合并值。
第2版:
foreach (Datarow r in myTable.Rows) {
r["Newcolumn"] = Convert.ToString(r["c1"]) + "/" + Convert.ToString(r["c2"]);
}