- ベストアンサー
AccessデータをSqlServerへの移行について
- AccessデータをSqlServerへの移行方法について、C♯(.net2.0)を使用した開発について説明します。
- Accessに大量のデータがあり、それをSqlServerに入れるためにはC♯でバッチなどを作成する必要があります。
- レコードセットを使用してAccessのデータを1行ずつSqlServerにインサートする方法がありますが、これには両方のデータベースへのコネクションが必要です。コネクションを閉じる前に新しいコネクションオブジェクトを作成し、SqlServerに接続することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>C♯(.net2.0)での開発です。 > Accessのデータをレコードセットで読み込んで、 違います。Access VBA で処理する場合は、ADODB.Recordset を使う方法が 主流ですが、.NET では ADO.NET の DataAdapter を使います。 Access への接続は OleDb http://msdn.microsoft.com/ja-jp/library/system.data.oledb(v=vs.80).aspx SQLServer への接続は SqlClient http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient(v=vs.80).aspx データの更新方法は何種類かありますが、 SQL 文を自分で編集して Command.BeginExecuteNonQuery メソッドで 更新する方法が、カスタマイズし易いので対応できる幅が広いと思います。 http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlcommand.beginexecutenonquery(v=vs.80).aspx > Accessのコネクション閉じた時点でレコードセットが読めなくなりますが データを全てレコードセットに入れてローカルに落としている状態なら、 読めると思いますが?DataAdapter はもともと非接続型で設計されています。 ただし、データ量が多い場合はメモリ消費量や処理時間が影響を受けますので 接続したまま1行ずつ読み込みながら処理もできます。 その場合は、DataReader を使います。 http://msdn.microsoft.com/ja-jp/library/system.data.oledb.oledbdatareader(v=vs.80).aspx > Accessのコネクションを開いたままSqlServerのコネクションを開くには > どうしたらいいのでしょうか。 コネクションを2つ作って下さい。