在我的 winform 应用程序中,我有 2 个数据表,都包含 37000 行。表 1 有 171 列,表 2 有 4 列。运行 While 循环以更新表 2 中 4 列的表 1 中的值。For 循环在 While 内运行两次以更新值。这样做需要超过 5 分钟。我认为这应该是 5 秒的任务。
正在更新的列是:
Int64 - 1 列
字符串 - 1 列
布尔值 - 1 列
日期 - 1 列
有人可以给出可能导致此问题的原因吗?
While lintRowCounter < ldtCurrentData.Rows.Count
ldrCurrentDataRow = ldtCurrentData(lintRowCounter)
For Each lobjDataEntity As DataEntities In lstDataEntities
ldrCurrentDataRow(lobjDataEntity.SourceName) = ldtPositionData(lintRowCounter).Item(lobjDataEntity.SourceName)
If ldtCurrentData.Columns.Contains(lobjDataEntity.SourceName + mstrFormulaColSuffix) Then
ldrCurrentDataRow(lobjDataEntity.SourceName + mstrFormulaColSuffix) = ldtPositionData(lintRowCounter).Item(lobjDataEntity.SourceName + mstrFormulaColSuffix)
End If
If ldtCurrentData.Columns.Contains(mstrSOFColPrefix + lobjDataEntity.SourceName) Then
ldrCurrentDataRow(mstrSOFColPrefix + lobjDataEntity.SourceName) = ldtPositionData(lintRowCounter).Item(mstrSOFColPrefix + lobjDataEntity.SourceName)
End If
If ldtCurrentData.Columns.Contains(lobjDataEntity.SourceName + mstrSourceDateColSuffix) Then
ldrCurrentDataRow(lobjDataEntity.SourceName + mstrSourceDateColSuffix) = ldtPositionData(lintRowCounter).Item(lobjDataEntity.SourceName + mstrSourceDateColSuffix)
End If
Next
lintRowCounter += 1
End While