Rodrigo A.S,
Vou contar minha experiência, espero que te ajude.
Eu preciso pegar vários Bancos que estão em MySQL e trazer a estrutura e os dados para o MS SQL Server.
Para fazer isso eu criei duas conexão aos bancos de dados (MySQL e o MS SQL Server) e pedi para o usuário escolher em uma combobox os servidores e entrar com os usuários e as respectivas senhas. Ilustrando:
CboDBOrigem.SelectedIndex = CboDBOrigem.FindString("MySQL")
CboServOrigem.Text = "Saturno"
TxtUsuOrigem.Text = "root"
'TxtSenhaOrigem.Text
CboDBDestino.SelectedIndex = CboDBDestino.FindString("MSSQL Server")
CboServDestino.Text = "Solar\Jupiter"
TxtUsuDestino.Text = "sa"
'TxtSenhaDestino.Text
Sempre listando o conteúdos do MySQL e do MS SQL Server (mostando todos os Bancos de Daods que temn dentro) e, depois de escolhido o Banco de Dados, mostrando as tabelas internas para o usuário.
Na hora de copiar os dados usei a classe "SqlBulkCopy", pois ela consegue copiar grades massas de dados muito rapidamente:
============================================
SqlBulkCopy Classe
https://docs.microsoft.com/pt-br/dotnet/api/system.data.sqlclient.sqlbulkcopy?view=netframework-4.8
============================================
strSQL = "SELECT COLUMN_NAME " &
"DATA_TYPE " &
"FROM information_schema.columns " &
"WHERE table_name = '" & AlvoDestino.strTabela & "' AND " &
"TABLE_SCHEMA = '" & AlvoDestino.strBanco & "' " &
"ORDER BY COLUMN_NAME "
[]'s,
Fabio I.