SQLBulkCopyでプログレスバーを使用したい

progress-bar sqlbulkcopy vb.net

質問

VB.NETを使用して開発しているアプリの質問。進捗バーを使用して、自分のSqlBulkCopyプロシージャの進行状況を表示したい。私はいくつかの方法を見てきたし、使用している場合思っていたAddHandler私にSqlBulkCopy使用して、手順SqlRowsCopied進捗状況を計算することが可能な方法です。もしそうなら、私はVB.NETのバーを少し進歩させるために、これをどのように実装しますか?これを回避するより良い方法があれば教えてください。すべての答えは非常に高く評価されています!ありがとう!私のSqlBulkCopyちょっとしたスニペットが実行されています。

(参考:進行状況バーで試したことは何も表示されません)

プログレスバーの名前はtoolStripProgressBarです。

Dim copy As New SqlBulkCopy(con)

For Each dc As DataColumn In dtDataCopy.Columns
    copy.ColumnMappings.Add(dc.ColumnName, dc.ColumnName)
Next

copy.DestinationTableName = TableName
copy.BulkCopyTimeout = 360 
copy.BatchSize = 1000
copy.WriteToServer(dtDataCopy)
copy.Close()

受け入れられた回答

ドキュメントの状態としては、 SqlRowsCopiedイベントは、に依存しているNotifyAfterプロパティ、NOT BatchSizeプロパティ。 ProgressBarMaximum値を行の総数に設定し、 StepプロパティをNotifyAfter値と同じにNotifyAfterます。 SqlRowsCopiedイベントが発生するPerformStepに、 ProgressBar PerformStepを呼び出すと、コピーされた行数だけインクリメントされます。

または、 e.RowsCopied値をProgressBar Valueプロパティに代入するだけでもe.RowsCopiedません。イベントのMSDNドキュメントには、コード例があります。この質問を投稿する前に、あなたが文書を参照したことが期待されます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ