none
Exportar dados do SQL para arquivo txt RRS feed

  • Pergunta

  • Como exportar dados da  minha tabela clientes para o o arquivo.txt

    Eu ja tenho uma conexão com o banco de dados SQL Server e com a minha tabela clientes usando o linq conforme codigo abaixo:

    var sourceClientes = (from cli in mdc.CLIENTES
                                         join CT in mdc.CONTATOS on cli.CODIGO equals CT.CLIENTE
                                         where
                                         CT.EMAIL != ""
                                         orderby CT.EMAIL
                                         select new { cli.CODIGO, cli.RAZAO, CT.EMAIL });

    Preciso agora apenas exportar esses dados para o arquivo txt.

    os campos são:

    CODIGO - RAZAO - EMAIL

    Com todos os registros existentes.

    Fico no aguardo

    Muito Obrigado

    terça-feira, 23 de fevereiro de 2016 16:10

Respostas

  • var allLines = (from trade in proposedTrades
                    select new object[] 
                    { 
                        trade.TradeType.ToString(), 
                        trade.AccountReference, 
                        trade.SecurityCodeType.ToString(), 
                        trade.SecurityCode, 
                        trade.ClientReference, 
                        trade.TradeCurrency, 
                        trade.AmountDenomination.ToString(), 
                        trade.Amount, 
                        trade.Units, 
                        trade.Percentage, 
                        trade.SettlementCurrency, 
                        trade.FOP, 
                        trade.ClientSettlementAccount, 
                        string.Format("\"{0}\"", trade.Notes),                             
                    }).ToList();
    
    var csv = new StringBuilder();
    allLines.ForEach(line => 
    {
        csv.AppendLine(string.Join(",", line));            
    });
    
    File.WriteAllText(filePath, csv.ToString());

    Veja se este código te ajuda.

    Att,


    Antero Marques

    terça-feira, 23 de fevereiro de 2016 16:30
  • Ricardo,

    Está faltando o L de StringBuilder:

    var CSV = new StringBuilder();

    Att,


    Antero Marques

    • Marcado como Resposta Marcos SJ quarta-feira, 24 de fevereiro de 2016 18:30
    quarta-feira, 24 de fevereiro de 2016 12:03

Todas as Respostas

  • var allLines = (from trade in proposedTrades
                    select new object[] 
                    { 
                        trade.TradeType.ToString(), 
                        trade.AccountReference, 
                        trade.SecurityCodeType.ToString(), 
                        trade.SecurityCode, 
                        trade.ClientReference, 
                        trade.TradeCurrency, 
                        trade.AmountDenomination.ToString(), 
                        trade.Amount, 
                        trade.Units, 
                        trade.Percentage, 
                        trade.SettlementCurrency, 
                        trade.FOP, 
                        trade.ClientSettlementAccount, 
                        string.Format("\"{0}\"", trade.Notes),                             
                    }).ToList();
    
    var csv = new StringBuilder();
    allLines.ForEach(line => 
    {
        csv.AppendLine(string.Join(",", line));            
    });
    
    File.WriteAllText(filePath, csv.ToString());

    Veja se este código te ajuda.

    Att,


    Antero Marques

    terça-feira, 23 de fevereiro de 2016 16:30
  • Boa Tarde Antero

    Obrigado por responder

    Coloquei da forma que você postou mudando apenas para os dados da minha tabela

                

    protected void btnSearch_Click(object sender, EventArgs e)
            {
                this.populate();
            }
            private void populate(int pIndex = -1)
            {
                mdc = new ModelDataContext();

                var sourceUsuariosCNA = (from cna in mdc.CNAs
                                         select new object[] 
                                      { 
                                      cna.NOME.ToString(),
                                      cna.CARGO.ToString(),
                                      cna.CARGO_EN.ToString(),
                                      cna.TELEFONE.ToString(),
                                      cna.EMAIL.ToString(),
                                      cna.LOJA.ToString(),
                                      cna.ENDERECO.ToString(),
                                      cna.BAIRRO.ToString(),
                                      cna.CEP.ToString(),
                                      cna.CIDADE.ToString(),
                                      }).ToList();

                var CSV = new StringBuider();

                sourceUsuariosCNA.ForEach(line =>
                    {
                        CSV.AppendLine(string.Join(",", line));

                    });

                File.WriteAllText(filePath, CSV.ToString());

            }


            public string filePath { get; set; }

    Porem esta dando esse erro:

    Erro de Servidor no Aplicativo '/'.

    O método ou a operação não está implementada.

    Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.NotImplementedException: O método ou a operação não está implementada.

    Erro de Origem: 
    Linha 10:         internal void AppendLine(string p)
    Linha 11:         {
    Linha 12:             throw new NotImplementedException();
    Linha 13:         }
    Linha 14:     }

    Arquivo de Origem: c:\ARTSIM\SGSIM\ControledeUsuarios\StringBuider.cs    Linha: 12 

    Rastreamento de Pilha: 
    [NotImplementedException: O método ou a operação não está implementada.]
       ControledeUsuarios.StringBuider.AppendLine(String p) in c:\ARTSIM\SGSIM\ControledeUsuarios\StringBuider.cs:12
       ControledeUsuarios.<>c__DisplayClass1.<populate>b__0(Object[] line) in c:\ARTSIM\SGSIM\ControledeUsuarios\CNA.aspx.cs:61
       System.Collections.Generic.List`1.ForEach(Action`1 action) +11450042
       ControledeUsuarios.CNA.populate(Int32 pIndex) in c:\ARTSIM\SGSIM\ControledeUsuarios\CNA.aspx.cs:59
       ControledeUsuarios.CNA.btnSearch_Click(Object sender, EventArgs e) in c:\ARTSIM\SGSIM\ControledeUsuarios\CNA.aspx.cs:36
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9690930
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
       System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3562
    


    Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.6.1038.0

    terça-feira, 23 de fevereiro de 2016 18:16
  • Ricardo,

    Está faltando o L de StringBuilder:

    var CSV = new StringBuilder();

    Att,


    Antero Marques

    • Marcado como Resposta Marcos SJ quarta-feira, 24 de fevereiro de 2016 18:30
    quarta-feira, 24 de fevereiro de 2016 12:03