none
Converter Access para SQL RRS feed

  • Pergunta

  • Tenho um Banco de Dados Access 97 e preciso convertê-lo para SQL.

    Quando acesso uma coluna vazia de uma Tabela Access, recebo um DBNull.

    O que fazer ?

    Sebastião Duarte

    terça-feira, 31 de março de 2015 17:40

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
    sábado, 18 de abril de 2015 13:24

Todas as Respostas

  • Como esta fazendo essa conversão, esta usando alguma ferramenta específica?

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 31 de março de 2015 18:35
  • 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.

    terça-feira, 31 de março de 2015 19:36
  • 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?

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 31 de março de 2015 19:54
  •         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;
                    }
                }
            }
    segunda-feira, 6 de abril de 2015 18:13
  • 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
    sábado, 18 de abril de 2015 13:24
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 14:09