none
[DUVIDA] - Importação de arquivo DBF RRS feed

  • Discussão Geral

  • Caros, bom dia!

    Eu estou com um problema ao importar um arquivo .DBF no C#.

    Eu estou conseguindo ler o arquivo corretamente, só que nesse arquivo tem um campo que possui o tipo de dados como "C, 500 (campo COPY)".

    O C# não consegue interpretar esse campo, e nenhum dos outros campos que estão pra frente desse campo?

    Segue abaixo o que está acontecendo:

    Estrutura do arquivo DBF:

    Registros no DBU:

    Leitura do arquivo no C#:

    private DataTable ListDBF(string pNomeArquivo, string pCaminhoArquivo)
    {
         string connectionString =
                    "Provider=Microsoft.Jet.OLEDB.4.0;" +
                    "Data Source=" + pCaminhoArquivo + ";" +
                    "Extended Properties=dBASE IV;";
    
         OleDbConnection Connection = null;
         OleDbCommand Command = null;
         OleDbDataAdapter DataAdapter = null;
         DataTable table = null;
    
         try
         {
              StringBuilder Query = new StringBuilder();
              Query.Append("SELECT * FROM " + pNomeArquivo + ";");
    
              Connection = new OleDbConnection(connectionString);
              Connection.Open();
    
              Command = Connection.CreateCommand();
              Command.CommandText = Query.ToString();
    
              DataAdapter = new OleDbDataAdapter(Command);
              table = new DataTable("table");
              DataAdapter.Fill(table);
         }
         catch (Exception ex)
         {
              HasError = true;
              MsgError = ex.Message;
         }
         finally
         {
              if (Connection != null)
              {
                   Connection.Dispose();
                   Connection = null;
              }
    
              if (Command != null)
              {
                   Command.Dispose();
                   Command = null;
              }
              
              if (DataAdapter != null)
              {
                   DataAdapter.Dispose();
                   DataAdapter = null;
              }
          }
    
          return table;
    }

    Resultado (DataTable):

    Como falei acima, todos os campos pra frente do campo COPY, eles vêm em branco.

    Eu Consigo alterar alguma coisa na minha ConnectionString para que o C# possa interpretar isso, ou não tem como ler, por causa do tamanho mesmo?

    Obrigado.

    att.

    Felipe

    sexta-feira, 12 de maio de 2017 14:36

Todas as Respostas

  • Boa tarde felipe022

    Tudo bem contigo?

    Grato pela participação no Fórum Microsoft MSDN.

    Por gentileza, poderia nos informar se o seu caso seria uma questão de Break Fix ou uma questão de How to?

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 12 de maio de 2017 19:59
    Moderador
  • Nossa isso existe ainda kkkkk desculpa e que faz tempo que não via o dbase
    sábado, 13 de maio de 2017 01:08
  • Bom dia Guilherme, desculpe a demora pra responder.

    Seria How to mesmo a questão.

    Eu queria saber se o C# realmente consegue fazer a importação quando o arquivo possui algum campo com mais de 200 carácteres.

    att.

    Felipe

    segunda-feira, 15 de maio de 2017 11:10
  • Agradeço pelo retorno felipe022

    Nesta área do fórum trabalhamos com casos de Break Fix.

    Sendo assim nas questões de How To/Customização, recomendamos você postar a sua dúvida na área de "Discussões Gerais". Neste local juntamente com a comunidade, você estudará a melhor possibilidade e estrategia para chegar na solução desejada.

    Agradeço pela atenção.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    sexta-feira, 19 de maio de 2017 20:01
    Moderador
  • Ok Guilherme, como eu posso fazer essa alteração?

    Você pode mover pra mim, e excluir esse tópico fazendo favor?

    att.

    Felipe

    segunda-feira, 22 de maio de 2017 19:37