Accessに列A、B、およびCのテーブルがあります。このテーブルのレコードを列A、B、C、およびDのSQLテーブルに書き込みたいのですが、これを実現するための最良の方法は何ですか。
OleDbDataReaderとbulkCopyを使用してみましたが、スキーマの違いにより困難になりました。
OleDbDataReader reader;// = new OleDbDataReader();
using (OleDbConnection sourceConnection = new OleDbConnection(sourceConnectionString))
{
//Get data from Access
OleDbCommand commandSourceData = new OleDbCommand("SELECT * FROM AddressLoCo;", sourceConnection);
commandSourceData.Connection = sourceConnection;
sourceConnection.Open();
reader = commandSourceData.ExecuteReader();
using (SqlConnection destinationConection = new SqlConnection(destinationConnectionString))
{
destinationConection.Open();
// Set up the bulk copy object
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConection))
{
bulkCopy.DestinationTableName = "dbo.AddressMaster";
try
{
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
reader.Close();
}
}
}
}