GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Importar txt em C# e gravar no Oracle


#1

Pessoal.

tenho um arquivo txt em em layout, ou seja, identifico os campos conforme posição da coluna:
Coluna 2 a 8 placa
Coluna 9 a 30 modelos do veiculos
Coluna 31 41 combustivel
assim por diante.
Estava querendo carregar esse arquivo em uma GRIDVIEW Asp.net C# e ao clicar em um botão GRAVAR por exemplo, gravaria os dados em uma tabela dentro do oracle.

Podem me ajudar?
Obrigado desde já.


#2

Joga os dados extraídos do txt pra um DataTable, que será o DataSource da Grid: https://www.aspsnippets.com/Articles/Dynamically-create-DataTable-and-bind-to-GridView-in-ASPNet.aspx


#3

mas tenho mais 1mil linhas de registros, preciso indentificar as informaçoes conforme posição da coluna.
Resumindo, na linha identificar posição da coluna para saber em qual coluna da tabela do oracle jogar.
exemplo:
Coluna 2 a 8 é a placa do carro, ira para o campo PLACA da minha tabela VEICULOS no oracle;
Coluna 9 a 30 é a descrição do Modelo, ira para o campo MODELo da minha tabela VEICULOS…
Txt:
2AAA1234HONDA/CIVIC

Oracle
| PLACA | MODELO |
|AAA1234 | HONDA/CIVIC |


#4

Os recursos são esses, o resto é com sua lógica de programação. Qual seria pontualmente sua dúvida inicial?

Se precisa gravar os dados do txt direto no Oracle, os passos serão esses:

Abrir e percorrer as linhas do arquivo txt. Exemplo.
Pra cada linha extrair a placa, descrição e modelo de acordo com a posição. Você pode usar por exemplo SubString.
Tendo os dados extraídos, faz um INSERT no Oracle. Exemplo.
Através do DataReader + DataTable exibe no GridView os dados inseridos no Oracle. Exemplo.


#5

Obrigado novamente pela resposta.
Eh que nunca fiz este tipo de programação, apenas trabalho com extração de dados via Pl/Sql, e me surgiu este trabalho.
Na sua opinião, qual a melhor logica? primeiro gravar no banco e depois exibir na grid, ou carregar o txt na grid e depois gravar o no banco?
Poderia dar um exemplo de código conforme o exemplo que descrevi acima?


#6

Depende da necessidade. Se o usuário precisa ver ou manipular os dados antes de jogar no banco, então jogue no DataTable + GridView antes de jogar no Oracle. Mas se não existe essa necessidade, então insira diretamente no Oracle e em seguida mostre pro usuário o que foi inserido no banco. Exemplo de código já te passei nos exemplos, dá uma estudada, e se tiver dúvida é só dizer pontualmente qual a dúvida.


#7

Nao, nao precisa manipular nada, apenas jogar os dados no BD.


#8

Parte logo para o asp.net mvc… Instala o ODT da Oracle (inclusive faz 1 mes que saiu a versão para VS 2017) e usa o Entityframework.

Só lembra, que se for mais de 4000 caracters usa o CLOB como campo.