【问题标题】:Joining Values Of Two Columns From DataTable连接数据表中两列的值
【发布时间】:2013-08-11 00:24:37
【问题描述】:

连接数据表中两列的值 两列使其成为数据表中的一列

我的数据表是

   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

【问题讨论】:

  • 我不明白怎么办,请写代码示例

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


【解决方案1】:

试试这样。

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

【讨论】:

  • 这实际上是正确的做法。遍历每一行的效率和可维护性较低。
【解决方案2】:

好的,如果你真的想这样做,那么你已经创建了一个额外的三列数据表:

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);
            }

就是这样

【讨论】:

  • 但我的数据表 hv 没有固定列,它根据搜索进行更改,因此 hw 可以合并到现有表中
【解决方案3】:

DataTable 就像一个容器。 连接表是不合适的。

我建议你使用 linq。

【讨论】:

  • 我没有 linq 的经验
  • Sumit Gupta 给出错误无法将“System.Data.DataTable”类型的对象转换为“System.Data.DataRow”类型。
【解决方案4】:

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

编辑:我不确定 Linq 或 Datatable 查询是否有一些内置功能可以做到这一点,但我说的是简单的解决方案。或者,如果您要从任何基于 SQL 查询的数据库中填充数据表,则使用列的 concat 编写具有合并值的第三列的 SQL。

编辑2:

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

【讨论】:

  • 我添加列 bt hw 我可以在其中合并两列
  • 如何使用dattable.merge
  • guptaji hw 可以将其合并在一列中
  • guptaji 它给出错误无法将“System.Data.DataTable”类型的对象转换为“System.Data.DataRow”类型。
  • 不确定要合并什么,在循环中我们已经合并了。解释得太简单了。
猜你喜欢
  • 2021-02-09
  • 2021-01-14
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 2015-11-20
相关资源
最近更新 更多