на данный момент у меня есть небольшое приложение, и мне нужно получить информацию от объекта и отобразить ее в файле excel, используя класс Microsoft.office.interop, который я смог записать в файл, и он показывает один за другим записи добавляются, однако примерно раз в 3 раза я пытаюсь это сделать, электронная таблица перестает заполняться где-то между 300-й и 600-й записью, у меня всего 6000 и она не ломается каждый раз, я ставлю галочку после того, как она заканчивается, чтобы увидеть, была ли последняя запись заполнена, но код никогда не достигает этой точки, и я не уверен, что происходит
Я также не знаю, как отладить проблему, так как это означало бы пройти 6000 циклов, чтобы проверить ее остановку ... что может даже не произойти?
небольшой фрагмент кода здесь
loadExcel(incidents, WorkSheetName)
If WorkSheetName.Cells(DBObject.HighestInci + 1, 6) Is Nothing Then
MessageBox.Show("Failed to fill spreadsheet, Retrying now.")
loadExcel(incidents, WorkSheetName)
End If
выше приведен код, вызывающий и проверяющий метод ниже
Private Sub loadExcel(ByVal incidents As List(Of Incident), ByRef WorkSheetName As Excel.Worksheet)
Dim i = 2
For Each inc As Incident In incidents
WorkSheetName.Cells(i, 1) = inc.DateLogged
WorkSheetName.Cells(i, 2) = inc.DateClosed
WorkSheetName.Cells(i, 3) = Convert.ToString(inc.DateLogged).Substring(3, 2)
i += 1
Next
End Sub
заранее спасибо
ИЗМЕНИТЬ
Я думаю, что лучше загрузить его в какой-то буфер, а затем записать после того, как все они будут обновлены, вместо того, чтобы в настоящее время загружать и записывать каждый отдельно? однако я понятия не имею, с чего начать для этого?
inc
var может быть потенциальным источником проблемы. Добавьте System.Diagnostics.Debug.Writeline(....) внутри цикла инцидентов. - person Steve   schedule 13.06.2012