Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
CSVデータの取込
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9013#CommentId10933
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
熊造
 (社会人)
投稿日時
2009/3/10 03:04:57
郵政省の郵便番号一覧(CSV)をダウンロードしてテーブルに追加したいのですが途中でエラーが出てしまいます。
やっていることはCSVをDataTableに読み込んでR_郵便番号に追加しています。
データ件数は12万件位あります。
CLR は、COM コンテキスト 0x113a008 から COM コンテキスト 0x113a178 へ 60 秒で移行できませんでした。
ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、
Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、
パフォーマンスを低下させたり、アプリケーションが応答していない状態および増え続けるメモリ使用を導く可能性があります。
この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、CoWaitForMultipleHandles のようなポンプする
待機プリミティブを使用するか、長い実行操作中に定期的にメッセージをポンプしなければなりません。
質問ばかりして申し訳ありませんが教えていただけないでしょうか
For i As Integer = 0 To oleTbl.Rows.Count - 1
Pra1.Value = oleTbl.Rows(i)(0) : Pra2.Value = oleTbl.Rows(i)(1) : Pra3.Value = oleTbl.Rows(i)(2)
省略
sqlCom.Parameters.Add(Pra1) : sqlCom.Parameters.Add(Pra2) : sqlCom.Parameters.Add(Pra3)
省略
sqlCom.CommandText = "INSERT INTO R_郵便番号 ( 団体コード, 旧郵便番号, 新郵便番号, 県カナ, " & _
"市カナ, 町域カナ, 県, 市, 町域, 一町多番号FLG, " & _
"小字起番FLG, 丁目FLG, 一番多町FLG, 更新表示, " & _
"変更事由 ) " & _
"VALUES (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12,@p13,@p14,@p15)"
sqlCom.ExecuteNonQuery()
sqlCom.Parameters.Clear()
frmPostDl.ProgressBar1.Value = i / oleTbl.Rows.Count * 100
frmPostDl.lblカウント.Text = i + 1
frmPostDl.Refresh()
Next