如何循环数据表并将结果保存在不同的数据表中
我正在使用vb asp.net
下面我有2个数据表和结果
Dim NewDtatTable1 As DataTable = getResults()
Dim NewDtatTable2 As DataTable = NewDtatTable1
NewDtatTable1结果:
|------------|--------|--------|
| myLocation | myName | date |
|------------|--------|--------|
| New york | name1 | 1/1/12 |
| Boston | name2 | 1/1/13 |
| New york | name3 | 1/1/14 |
| New york | name4 | 1/1/15 |
| Boston | name5 | 1/1/16 |
|------------|--------|--------|
我想通过数据表名称NewDtatTable1循环,如果myLocation等于' new york'比我想将该行添加到新数据表NewDtatTable2
For Each row As DataRow In NewDtatTable21.Rows
If (String.Compare(row.Item("myLocation").ToUpper(), "NEW YORK", True) = 0)
Dim R As DataRow = NewDtatTable21.NewRow
NewDtatTable.Rows.Add(NewDtatTable1 .Rows.Item(row))
End If
End If
我希望NewDtatTable2的结果如下:
|------------|--------|--------|
| myLocation | myName | date |
|------------|--------|--------|
| New york | name1 | 1/1/12 |
| New york | name3 | 1/1/14 |
| New york | name4 | 1/1/15 |
|------------|--------|--------|
答案 0 :(得分:1)
您正在设置NewDtatTable2 = NewDtatTable1
而不是克隆表的结构。所以你可以做这样的事情来复制行值而不是复制行引用。
Dim NewDtatTable1 As DataTable = getResults()
Dim NewDtatTable2 As DataTable = NewDtatTable1.Clone()
For Each row As DataRow In NewDtatTable1.Rows
If (String.Equals(row.Item("myLocation"), "New York", StringComparison.CurrentCultureIgnoreCase))
NewDtatTable2.Rows.Add(row.ItemArray)
End If
End For