Usuário com melhor resposta
Converter Access para SQL

Pergunta
-
Respostas
-
A solução encontrada:
OleDbConnection conn = new OleDbConnection(mdbStringConection);
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Taxas]", conn);
CTaxas tax = new CTaxas();
try
{
conn.Open();
OleDbDataReader dados = cmd.ExecuteReader();
while (dados.Read())
{
var novaTaxa = new Taxa
{
TxPlano = dados.IsDBNull(0) ? 0 : dados.GetInt16(0),
TxDescricao = dados.IsDBNull(1) ? " " : dados.GetString(1),
TxFator = dados.IsDBNull(2) ? 0.0f : dados.GetFloat(2),
TxParcelas = dados.IsDBNull(3) ? (short)0 : dados.GetInt16(3),
TxIoc = dados.IsDBNull(4) ? 0.0f : dados.GetFloat(4),
TxMensal = dados.IsDBNull(5) ? 0.0f : dados.GetFloat(5),
TxAnual = dados.IsDBNull(6) ? 0.0f : dados.GetFloat(6),
TxVencimento = dados.IsDBNull(7) ? " " : dados.GetString(7)
};
tax.AdicionarTaxa(novaTaxa);
}
conn.Close();
this.chkSecundariosTaxas.Checked = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
conn.Close();
return;
}
- Sugerido como Resposta Mr. GMSOFT segunda-feira, 20 de abril de 2015 22:42
- Marcado como Resposta Sebastião Duarte quinta-feira, 21 de janeiro de 2016 11:32
Todas as Respostas
-
-
Estou usando SSMA para criar as tabelas.
Para carregar os dados, estou escrevendo uma ferramenta Usando VS 2013 e C#.
OLeDb para acessar as Tabelas Access.
Ate consigo ler Fill(dataTable), mas quando acesso uma coluna, tipo Endereço, se ela estiver vazia vou receber DBNull, e não encontrei saída, até agora.
-
Posta o codigo que esta carregando os dados do access, por que ao invés de usar Fill não usa o OleDBDataReader e faz um insert direto no banco?
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
-
private void ConverterAdministradoras()
{
string mdbStringConection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\PrimeiraLinha\\cpd.mdb";
OleDbConnection conn = new OleDbConnection(mdbStringConection);
cpdDataset.AdministradorasDataTable admin = new cpdDataset.AdministradorasDataTable();
OleDbCommand cmd = new OleDbCommand("SELECT * FROM Administradoras", conn);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
da.Fill(admin);
if (admin.Count == 0) { MessageBox.Show("Arquivo Administradoras vazio"); return; }
var dados = from p in admin select p;
CAdministradoras adm = new CAdministradoras();
foreach (var x in dados)
{
try
{
var novaAdminsitradora = new Administradora
{
AdmCliente = x.AdmCliente,
AdmCodigo = x.AdmCodigo,
AdmContato = x.AdmContato,
AdmData = x.AdmData,
AdmNome = x.AdmNome,
AdmParcelas = x.AdmParcelas,
AdmPrazo = x.AdmPrazo,
AdmPrazos = x.AdmPrazos,
AdmTaxa = x.AdmTaxa,
AdmTaxaDesconto = x.AdmTaxaDesconto,
AdmTelefone = x.AdmTelefone
};
adm.AdicionarAdministradoras(novaAdminsitradora);
chkPrimariosAdministradoras.Checked = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
} -
A solução encontrada:
OleDbConnection conn = new OleDbConnection(mdbStringConection);
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Taxas]", conn);
CTaxas tax = new CTaxas();
try
{
conn.Open();
OleDbDataReader dados = cmd.ExecuteReader();
while (dados.Read())
{
var novaTaxa = new Taxa
{
TxPlano = dados.IsDBNull(0) ? 0 : dados.GetInt16(0),
TxDescricao = dados.IsDBNull(1) ? " " : dados.GetString(1),
TxFator = dados.IsDBNull(2) ? 0.0f : dados.GetFloat(2),
TxParcelas = dados.IsDBNull(3) ? (short)0 : dados.GetInt16(3),
TxIoc = dados.IsDBNull(4) ? 0.0f : dados.GetFloat(4),
TxMensal = dados.IsDBNull(5) ? 0.0f : dados.GetFloat(5),
TxAnual = dados.IsDBNull(6) ? 0.0f : dados.GetFloat(6),
TxVencimento = dados.IsDBNull(7) ? " " : dados.GetString(7)
};
tax.AdicionarTaxa(novaTaxa);
}
conn.Close();
this.chkSecundariosTaxas.Checked = false;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
conn.Close();
return;
}
- Sugerido como Resposta Mr. GMSOFT segunda-feira, 20 de abril de 2015 22:42
- Marcado como Resposta Sebastião Duarte quinta-feira, 21 de janeiro de 2016 11:32
-