繁体   English   中英

遍历asp.net数据表中的行时无数据

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM