2011-08-10 52 views
1

我有一個asp.net應用程序,我有一個只返回一列(「ProductID」)的數據表(「DataTableA」)。從一個DataTable循環遍歷並在vb.net中填充另一個DataTable

我想讀取「ProductID」的每一行,處理一些業務邏輯,然後將這兩列(ProductID & ProductIDBusinessLogicValue)複製到DataTableB。這個DataTableB然後顯示在asp.net頁面上。

什麼是閱讀每行DataTableA的最佳方式?

感謝

+0

爲什麼不只是在您的第一個表中創建一個新列以容納com puted值(而不是先複製表格) - 您不需要第二個表格。 – Chains

回答

2

可以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"))); 
    } 
+0

使用你的邏輯,我也可以給DataTableA添加一個新的列,對嗎? – Frank

+0

是的,如果你不需要tableA與原始模式,順便說一句。抱歉的C#版本我沒有注意到你問過vb.net –

+0

hvala @Antonio !!! – Frank

1

這裏是你可能會喜歡另一種方法(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...