none
Importa CSV pelo console application C# para banco? RRS feed

  • Pergunta

  • Senhores, boa noite.

    Tenho um banco (SQL SERVER) e tenho uns arquivos csv de cada tabela do banco (tblCliente, tblPais, tblPedido) preciso fazer um programa Console Application C# para ler cada um dos arquivos e efetuar a “carga” dos dados em suas respectivas tabelas banco (SQL SERVER) as tabela do banco já foram criada com seus campos.

    Sou iniciante em programação e realmente não sei como importa os dados do csv pelo Console Application C# para banco.

    Eu só consegui carregar um só arquivo e apresentar na tela não precisa necessariamente apresenta só importar para o banco.

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;

    namespace CSVReader
    {
        class Program
        {
            static void Main(string[] args)
            {
                string linha = "";
                string[] linhaseparada = null;
                StreamReader reader = new StreamReader(@"D:\tblCliente.csv", Encoding.UTF8, true);
                while (true)
                {
                    linha = reader.ReadLine();
                    if (linha == null) break;
                    linhaseparada = linha.Split(';');
                    string resultado = string.Format(
                    @"Linha - 
                        CodCliente  1: {0}
                        DescCliente 2: {1}
                        CodPais     3: {2}
                        DDD         4: {3}
                        Fone        5: {4}
                        CodSexo     6: {5}", linhaseparada[0], linhaseparada[1], linhaseparada[2], linhaseparada[3], linhaseparada[4], linhaseparada[4]);
                    Console.WriteLine(resultado);
                }
                Console.ReadKey();
            }
        }
    }

    Agradeço a todos por toda e qualquer ajuda! ;)

    sábado, 15 de maio de 2021 00:20

Todas as Respostas

  • Lucas,

        Você precisa se conectar ao banco de Dados SQL Server e depois transmitir os dados de alguma das formas possíveis.
        Exemplos:
        - Stored Procedure - Dentro do Banco, mas precisa passar parâmetros;
        - CommandText - Linha de Texto contendo um comando SQL;

        Se quiser eu posso fazer para você, mas acredito ser muito mais interessante você fazer este mini curso de 9 aulas do Macoratti, desta forma você irá dominar o ADO.Net (ActiveX Data Objects.Net):

    =======================================
    C# - ADO .NET para Iniciantes - I (início do minicurso)

    http://www.macoratti.net/08/11/c_adn_1.htm
    =======================================

        Existem outros links interessantes também:

    =======================================
    ADO.Net - Fundamentos

    https://www.devmedia.com.br/ado-net-fundamentos/9342
    =======================================
    Uma Visão Geral do ADO.NET

    http://www.linhadecodigo.com.br/artigo/435/uma-visao-geral-do-adonet.aspx
    =======================================
    Novidades do .NET Core 3.0: um novo provider ADO.NET para SQL Server
    Renato Groffe
    Oct 20, 2019
    3 min read
    using var conexao = new SqlConnection(
        config.GetConnectionString("BaseCotacoes"));
    
    using var cmd = conexao.CreateCommand();
        cmd.CommandText =
            "SELECT Sigla " +
                  ",NomeMoeda " +
                  ",UltimaCotacao " +
                  ",ValorComercial AS 'Cotacoes.Comercial' " +
                  ",ValorTurismo AS 'Cotacoes.Turismo' " +
            "FROM dbo.Cotacoes " +
            "ORDER BY NomeMoeda " +
            "FOR JSON PATH, ROOT('Moedas')";
                
    conexao.Open();
    string valorJSON = (string)cmd.ExecuteScalar();
    conexao.Close();

    https://renatogroffe.medium.com/novidades-do-net-core-3-0-um-novo-provider-ado-net-para-sql-server-398fea8848cc
    =======================================

    []'s,
    Fabio I.
    • Editado Fabio I sábado, 15 de maio de 2021 18:08
    sábado, 15 de maio de 2021 18:07
  • Ola Fábio,

    Obrigado pela boa informação. Vou adicionar nas minhas notas
    segunda-feira, 17 de maio de 2021 12:13
    Moderador
  • Mauricio,

        Fico feliz por ter ajudado, mas por favor, se você puder, poderia me pontuar por gentileza?

    Obrigado,
    Fabio I.

    segunda-feira, 17 de maio de 2021 14:29