Нет данных при циклическом просмотре строк в файле данных asp.net - PullRequest
0 голосов
/ 18 октября 2011

Когда мое приложение проходит через первый блок кода ниже, я получаю действительные данные для всех полей 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, но я получаю пустое значение для других полей.
Когда я просматриваю базу данных, всеполя в этой таблице имеют допустимые значения.

Что будет причиной пустых значений?

Ответы [ 3 ]

1 голос
/ 18 октября 2011

Вы все еще добавляете строки к тому же дататуру, что и в первом блоке кода, вы просто перечисляете его по-другому. Вы должны создать новую таблицу данных для добавления ваших строк вместо той, по которой вы проходите цикл.

Если вы сделаете это, вы сможете использовать любой метод для вашего цикла.

    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

Я не уверен, что это приближает вас к вашей цели, но у меня возникают некоторые трудности с определением того, чего вы пытаетесь достичь, когда просматриваете таблицу данных.

1 голос
/ 18 октября 2011

Ваши пустые значения могут быть вызваны тем, что имена столбцов немного отличаются от того, как вы их вводили?

Я немного озадачен тем, что вы делаете, потому что вы, кажется, в основном дублируете строки? я не совсем уверен, как это связано с записью их в файл Excel

1 голос
/ 18 октября 2011

не уверен, что вы пытаетесь достичь, так как вы выбираете счетчик из dtExportAddr и добавляете записи обратно в него

Попробуйте - не проверено

Dim dRow As DataRow = dtExportAddr.Rows (index)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...