簡體   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