从DataTable连接两列的值

时间:2013-08-09 05:19:58

标签: c# asp.net vb.net visual-studio-2008

从DataTable加入两列的值 两列使其位于数据表

的一列中

我的数据表是

   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

我不明白我能做什么,请编写代码示例

我没有linq的经验。 我添加列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

4 个答案:

答案 0 :(得分:8)

尝试这样做。

 dtTwoItems.Columns.Add("Combined", typeof(string), "TagNumber+'/'+LogNumber");

答案 1 :(得分:5)

好的,如果您真的想要这样做,那么您已经创建了一个包含三列的额外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);
            }

多数人

答案 2 :(得分:1)

您是否尝试将新列添加到DataTable,然后通过组合它们来遍历每一行以放置值?

编辑:我不确定Linq或Datatable查询是否有一些内置功能来执行此操作,但简单的解决方案就是我所说的。或者,如果要从任何基于SQL查询的数据库填充数据表,则使用连续列编写具有合并值的第三列的SQL。

EDIT2:

foreach (Datarow r in myTable.Rows) {
   r["Newcolumn"] = Convert.ToString(r["c1"]) + "/" + Convert.ToString(r["c2"]);
}

答案 3 :(得分:1)

DataTable就像一个容器。 加入表是不合适的。

我建议你使用linq。