申し訳ありません私の英語があまり良くない場合、私は問題を説明しようとします。データセットを使用して1Dbから別のデータにデータをコピー
私は実用的なソリューションを作ったが、それは非常に遅いです(ODBCで接続)のMySQL DB
の表に(のOleDBに接続)AccesのMDBの表からすべてのデータをコピーする必要があり、他のソリューションを試して、パフォーマンスが向上するかどうかを確認したいと考えています。
溶液、MDBに接続DataReaderを使用して、その後のDataReaderで行ごとに、私はレコードがよりいる
(Iテーブルを切り捨てるコピーする前に、それが空で取得する)MySQLのテーブルへの挿入を行います10Kとこの操作は非常に遅く、私は他の2つのテーブルでも同じことを行う必要があります。
1 DBにOleDB connがあり、もう1つにODBC connがあるため、直接SQL挿入(INSERT INTO A in ..... SELECT * FROM B
)はできません。
私はTableAdapters
とDataSet
を使ってこの操作をしようと考えましたが、動作させることはできません。
問題は、私が投稿することができますいくつかのコードが必要な場合は、データセットのHasChanges
がfalse
であるということですが、私がやっていることは以下の通りです:
- 接続MDbと
- にOleDbTableAdapter
- を作成します。データセットの作成
- TableAdapterを使用したデータセットの埋め込み
- MySqlDBへの接続
- ODBCTableAdapterの作成
- ODBCTableAdapterの更新コマンドを最初のデータセットとともに使用する。
しかしDSは、彼がDBには何も書いていないので、私は別のデータセットを使用することを考えて、行を追加するDS1からDS2にデータをコピーし、has.changesは本当だったかどうかを確認し、意思ので、コミット変更がありませんDS2を使用してODBCTableadapterのコマンドを更新します。
私は、データセットの間でデータをコピーするためにしようと試み:
ds2 = ds1.copy
私はDS1
データローをループしてDS2
にDS1
からすべての行をインポート、データセットのインポート機能を使用することも試みました。 どちらの場合も、行はDS2に追加されますが、まだHasChanges
はfalseです。どうすればよいですか? 私はDS.Acceptchanges
を使用せず、PrimaryKeyが定義されている、UpdateCommand
が定義されている可能性のある質問を明確にするために、DSにデータがあります(チェックするには2つのDataGridを設定します)。 エラーは表示されず、DBに書き込まれたデータはありません。
提案がありますか?アドバイスをありがとう。
MySqlConnectionに最初のTableAdapterのUpdateCommandを使用することはできません。最初のDataTableの各DataRowを2番目の(MySQL)DataTableに挿入する必要があります。次に、MySQLテーブルのTableAdapterを使用してこのDataTableを更新します。 –
はい、たぶん私は悪いことを説明したでしょう、それは、私は2番目のDatatableを実装しましたが、vbのDatatableは変更がないので、私はMysqlTableAdapterの更新を呼び出すときにDBに何も書き込まれません。 –