私のwinformアプリケーションには、2つのデータテーブルがあり、両方に37000行が含まれています。表 1 には 171 列、表 2 には 4 列があります。While ループが実行され、4 列のテーブル 2 からテーブル 1 の値が更新されます。For ループが While 内で 2 回実行され、値が更新されます。これには 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