[英]No data when looping through rows in an asp.net datatable
當我的應用程序遍歷下面的第一個代碼塊時,我將獲得所有datarow字段的有效數據。
For Each dRow In dtExportAddr.Rows
dtExportAddr.Rows.Add(dRow("MgrID"), dRow("LocationNum"), dRow("DeptNum"), dRow("AddressLinkID"), dRow("PositionID"))
Next
但是在遍歷該代碼塊“收集已被修改;枚舉操作可能無法執行”時出現錯誤。
所以我正在使用下面的代碼塊:
Dim rowCount As Integer = dtExportAddr.Rows.Count
Dim index As Integer = 0
For index = 0 To rowCount - 1
Dim dRow As DataRow = dtExportAddr.Rows.Item(index)
dtExportAddr.Rows.Add(dRow("MgrID"), dRow("LocationNum"), dRow("DeptNum"), dRow("AddressLinkID"), dRow("PositionID"))
Next
但是,在第二個代碼塊中,我獲得了一個有效的MgrID記錄,但對於其他字段卻獲得了空白值。
當我查看數據庫時,該表中的所有字段都具有有效值。
什么會導致空白值?
不知道您要達到什么,因為您從dtExportAddr選擇計數並將記錄添加回去
試試看-未測試
Dim dRow為DataRow = dtExportAddr.Rows(index)
您仍然將行添加到與第一個代碼塊相同的數據表中,只是以不同的方式枚舉它。 您應該創建一個新的數據表以將行添加到其中,而不是要遍歷的行。
如果這樣做,則應該能夠對循環使用任何一種方法。
Dim tempTable As New DataTable
For Each dRow As DataRow In dtExportAddr.Rows
Dim tempRow As DataRow = tempTable.NewRow(dRow("MgrID"), dRow("LocationNum"), dRow("DeptNum"), dRow("AddressLinkID"), dRow("PositionID"))
tempTable.Rows.Add(tempRow)
Next
我不確定是否可以使您更接近目標,但是在遍歷該數據表時很難弄清楚您要完成的目標。
您的空白值可能是由於列名與您鍵入它們的方式有些不同?
我對自己的工作也有些困惑,因為您似乎基本上是在復制行? 我不太確定這與將它們寫到excel文件有什么關系
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.