0

何千もの行を保存し、何かを行った後にそれらを更新するための最良の方法は何ですか?

現在、挿入が完了したら、データテーブルを使用して入力します

MyDataAdapter.Update(MyDataTable)

MyDataTable に変更を加えた後、再び MyDataAdapter.Update(MyDataTable) メソッドを使用します。

編集:

詳しい情報を提供できなくて申し訳ありません。

XML ファイルから作成される最大 200.000 行が存在する場合があります。そこに行がデータベースに保存されます。その後、各行に対していくつかのプロセスがあります。そして、データベースの各行を更新する必要があります。

行ごとに更新する代わりに、データテーブルを更新し、同じデータアダプターを使用して行を更新することにしました。

これは私の最高です。

もっとスマートなアプローチがあるかもしれないと思います。

4

2 に答える 2

1

私の理解が正しければ、行をデータベースにロードしてからそれらの行を更新するという 2 つの別個の操作を行っていることになります。

挿入する行が ADO​​.NET でサポートされている別のデータソースからのものである場合は、SqlBulkCopy を使用して行をバッチで挿入できます。これは、データ テーブルを使用するよりも効率的です。

行がデータベースに入ったら、 SQLCommand を実行して値を変更する方がよいと思います。

質問の内容とその理由について詳しく教えていただければ、より適切な回答を提供できるかもしれません。

于 2009-10-27T15:26:44.067 に答える
1

あなたのコメントに反応して:

DataAdapter.Update()行ごとに更新 (および挿入/削除) します。個々の変更がある場合、これより速い方法はありません。体系的な変更がある場合は、データベースに対してDbCommandSET Price = Price+ 2 WHERE SelByDate < '1/1/2010'を実行する方がよいでしょう。

しかし、パフォーマンスの前にトランザクションとエラー処理について心配する必要があるかもしれません。

于 2009-10-27T18:43:37.553 に答える