none
Exportar Csv asp.net RRS feed

  • Pregunta

  • Buenas Tardes,

    necesito exportar a Csv desde sql server, pero necesito solo algunos campos de la tabla y al mismo tiempo solo algunos vayan con comillas, ademas agregar campos vacios ya que es necesario para importar en otro software, es decir, necesito que me exporte en la siguiente estructura.

    Campo1, campo3, campo4, "campo6", campo8("#.###"),,

    tengo el siguiente codigo

     Dim Da As New SqlDataAdapter("SELECT * FROM BARRAS", Con)
            Conectar()
    
            Dim dt As New DataTable("temp")
            Da.Fill(dt)
    
            Dim csv As String = String.Empty
    
            For Each column As DataColumn In dt.Columns
                
                csv += column.ColumnName + ","c
            Next
    
           
            csv += vbCr & vbLf
    
            For Each row As DataRow In dt.Rows
                For Each column As DataColumn In dt.Columns
    
                    
                    csv += row(column.ColumnName).ToString().Replace(",", ";") + ","c
                Next
    
                
                csv += vbCr & vbLf
            Next
    
            
            Response.Clear()
            Response.Buffer = True
            Response.AddHeader("content-disposition", "attachment;filename=SqlExport.csv")
            Response.Charset = ""
            Response.ContentType = "application/text"
            Response.Output.Write(csv)
            Response.Flush()
            Response.End()
           
            Desconectar()

    Este codigo me exporta toda la tabla y necesito solo algunos campos y con formatos especiales, como lo mencione anteriormente.

    Gracias por la ayuda prestada.

    martes, 3 de abril de 2018 21:47

Respuestas

  • Si solamente necesita algunos campos, ¿por qué usa * en la cláusula SELECT?  Pida las columnas que desea EXACTAMENTE, incluyendo las vacías, que parecen ser 2 al final.

    Select
        Campo1
        , Campo3
        , Campo4
        , '"' + Campo6 + '"' As [Campo6] --Agregamos las comillas de una vez
        , Campo8
        , '' As [NoTengoIdeaDelNombre] --Agregamos los campos en blanco
        , '' As [OtroNombreQueNoConozco]
    From
        Barras
    ;
    Empiece por ahí a ver cómo le va.


    Jose R. MCP
    Code Samples

    miércoles, 4 de abril de 2018 3:39
    Moderador

Todas las respuestas

  • Si solamente necesita algunos campos, ¿por qué usa * en la cláusula SELECT?  Pida las columnas que desea EXACTAMENTE, incluyendo las vacías, que parecen ser 2 al final.

    Select
        Campo1
        , Campo3
        , Campo4
        , '"' + Campo6 + '"' As [Campo6] --Agregamos las comillas de una vez
        , Campo8
        , '' As [NoTengoIdeaDelNombre] --Agregamos los campos en blanco
        , '' As [OtroNombreQueNoConozco]
    From
        Barras
    ;
    Empiece por ahí a ver cómo le va.


    Jose R. MCP
    Code Samples

    miércoles, 4 de abril de 2018 3:39
    Moderador
  • hola

    pesima implementacion, si vas a crear una exportacion usa una libreria que lo haga mas simple

    CsvHelper

    con esa libreria puedes generar una exportacion directa de los datos, pero no uses datatable convierte los datos a entidades que se exporte directo

    unir una exportacion en un string concatenado es pesimo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 4 de abril de 2018 12:41
  • Excelente. muchas Gracias
    miércoles, 4 de abril de 2018 15:08