none
Exportar resultado una consulta SQL a txt evento de boton clic - vb.net RRS feed

  • Pregunta

  • Buenas noches, tengo una duda nose como exportar el resultado de una consulta sql a txt , atravez de un evento de boton click,

    la idea es que el resultado me exporte incluido las columnas asi como en sql

    lunes, 30 de enero de 2017 1:44

Respuestas

  • Hola Oscar Perez 1234,

    Podrías ayudarte usando Linq :

    Try
        Using con As New SqlConnection("MiCadenaConexion")
            con.Open()
    
            Dim adapter As New SqlDataAdapter("Select * from miTabla", con)
    
            Dim dt As New DataTable
    
            'Cargamos el resultado al DataTable
            adapter.Fill(dt)
    
            'Ruta con el nombre del archivo a crear
            Using sw As New StreamWriter("miruta\archivo.txt")
    
                'Escribe los nombres de las columnas (x.ColumnName o x.Caption)
                sw.WriteLine(String.Join(",", dt.Columns.OfType(Of DataColumn).
                                            Select(Function(x) x.ColumnName).ToArray()))
    
                'Recorremos las filas y las agregamos.
                dt.Rows.OfType(Of DataRow).ToList().
                        ForEach(Sub(x) sw.WriteLine(String.Join(",", x.ItemArray)))
    
            End Using
    
            MessageBox.Show("Archivo creado!")
    
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    lunes, 30 de enero de 2017 2:10
  • Oscar Perez 1234,

    Para importar los datos desde un archivo de texto a una hoja de Microsoft Excel tienes varias formas, te propongo dos:

    1. Manteniendo la extensión de archivo *.txt. Abrir Microsoft Excel, ir a la ficha DATOS y en el grupo 'Obtener datos externos' elegir la opción 'Desde texto'. Tras seleccionar el archivo, Microsoft Excel mostrará un asistente para importar los datos en una estructura de tabla basándose en un separador que noto en tu código es un carácter de coma (,).
    2. Crear un archivo CSV. Un archivo con extensión CSV (comma-separated values) es un tipo de documento que sirve para representar los datos en forma tabular, cada campo está delimitado por un carácter de coma (,). No hay mayor cambio que hacer salvo cambiar la extensión del archivo que generas:

    'Ruta con el nombre del archivo a crear
    Using sw As New StreamWriter("D:\NombreArchivo.csv")



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    martes, 31 de enero de 2017 2:33

Todas las respuestas

  • Hola Oscar Perez 1234,

    Podrías ayudarte usando Linq :

    Try
        Using con As New SqlConnection("MiCadenaConexion")
            con.Open()
    
            Dim adapter As New SqlDataAdapter("Select * from miTabla", con)
    
            Dim dt As New DataTable
    
            'Cargamos el resultado al DataTable
            adapter.Fill(dt)
    
            'Ruta con el nombre del archivo a crear
            Using sw As New StreamWriter("miruta\archivo.txt")
    
                'Escribe los nombres de las columnas (x.ColumnName o x.Caption)
                sw.WriteLine(String.Join(",", dt.Columns.OfType(Of DataColumn).
                                            Select(Function(x) x.ColumnName).ToArray()))
    
                'Recorremos las filas y las agregamos.
                dt.Rows.OfType(Of DataRow).ToList().
                        ForEach(Sub(x) sw.WriteLine(String.Join(",", x.ItemArray)))
    
            End Using
    
            MessageBox.Show("Archivo creado!")
    
        End Using
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    lunes, 30 de enero de 2017 2:10
  • Gracias Joel, una pregunta y si deseo que me cree el archivo txt, por ejemplo si esta eliminado ese archivo que lo cree, se puede hacer eso ???
    lunes, 30 de enero de 2017 2:48
  • Hola Oscar Perez 1234,

    Pero usando el StreamWriter te creará el archivo si no existe, caso contrario lo sobreescribe con los nuevos datos.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    lunes, 30 de enero de 2017 2:52
  • Si Joel, gracias una ultima consulta mira, porque cuando copio los datos del txt a un excel, todo se almacena en una sola columna, a que se debe eso que es lo que tengo que hacer, lo que me faltaria es que el texto exportado en mi txt tenga sus limitaciones tal y como uno copia del resultado del SQL a un excel, cuando tu pegas el resultado cada columna se almacena en cada columna del excel, espero me ayudes por favor gracias.
    lunes, 30 de enero de 2017 15:46
  • Oscar Perez 1234,

    Para importar los datos desde un archivo de texto a una hoja de Microsoft Excel tienes varias formas, te propongo dos:

    1. Manteniendo la extensión de archivo *.txt. Abrir Microsoft Excel, ir a la ficha DATOS y en el grupo 'Obtener datos externos' elegir la opción 'Desde texto'. Tras seleccionar el archivo, Microsoft Excel mostrará un asistente para importar los datos en una estructura de tabla basándose en un separador que noto en tu código es un carácter de coma (,).
    2. Crear un archivo CSV. Un archivo con extensión CSV (comma-separated values) es un tipo de documento que sirve para representar los datos en forma tabular, cada campo está delimitado por un carácter de coma (,). No hay mayor cambio que hacer salvo cambiar la extensión del archivo que generas:

    'Ruta con el nombre del archivo a crear
    Using sw As New StreamWriter("D:\NombreArchivo.csv")



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    martes, 31 de enero de 2017 2:33