[英]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.