【问题标题】:Looping through records from one DataTable and populating another DataTable in vb.net循环遍历一个数据表中的记录并在 vb.net 中填充另一个数据表
【发布时间】:2011-08-10 16:35:43
【问题描述】:

我有一个 asp.net 应用程序,其中有一个只返回一列(“ProductID”)的数据表(“DataTableA”)。

我想读取“ProductID”的每一行,处理一些业务逻辑,然后将这两列(ProductID 和 ProductIDBusinessLogicValue)复制到 DataTableB。这个 DataTableB 然后显示在 asp.net 页面上。

读取每一行 DataTableA 的最佳方法是什么?

谢谢

【问题讨论】:

  • 为什么不在你的第一个表中创建一个新列来保存计算值(而不是先复制你的表)——你不需要第二个表。

标签: asp.net vb.net datatable


【解决方案1】:

您可以将DataTableA复制到DataTableB,添加列并在每一行上执行业务逻辑,如下所示:

  DataTable dataTableB = dataTableA.Copy();
  dataTableB.Columns.Add("ProcessedValue", typeof(string));

  foreach (DataRow rw in dataTableB.Rows)
  {
    rw.SetField<string>("ProcessedValue", BusinessLogic(rw.Field<int>("ProductID")));
  }

【讨论】:

  • 使用你的逻辑,我也可以在 DataTableA 中添加一个新列,对吗?
  • 是的,如果您不需要具有原始架构的 tableA,顺便说一句。对不起 c# 版本我没有注意到你问 vb.net
【解决方案2】:

这是您可能喜欢的另一种方法 (linq)

Dim table1 As DataTable = ds.Tables("DataTableA")    
Dim query = From product In table1.AsEnumerable() Select ProductID, myCalculatedField    
Dim table2 As DataTable = query.CopyToDataTable()

More Info...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 2012-04-30
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多