top of page

EXPORTAR UNA TABLA O CONSULTA DE SQL SERVER A UN ARCHIVO CSV CON C#

Código C# para exportar una tabla o consulta de SQL SERVER a un archivo .csv .

El código es el siguiente.

//librerías

using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System;
using System.IO;
using System.Text;

  public void crearCsvSqlServer()
        {
     
      SqlConnection con = new SqlConnection();          
            DataTable dt = new DataTable();
            string elpw = "MIPW";
            string elUsuario= "MIUSER";
            string ipServidor = "192.163.XXX.XX";
            string textoCmd = "select * from PERSONAS";
            string strFilePath = @"D:\Visual\ARCHIVO.CSV";

            try
            {

                //INICIAMOS CONEXICON
                con = new SqlConnection("data source=" + ipServidor + ";uid =" + elUsuario + "; PWD=" + elpw + "; initial catalog= BD_PROPIA");
                con.Open();


                //CARGAMOS TABLA EN MEMORIA CON LA CONSULTA
                SqlCommand cmd = new SqlCommand(textoCmd, con);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(dt);

                //CREAMOS ARCHIVO CSV
                StreamWriter sw = new StreamWriter(strFilePath, false,  Encoding.UTF8);

                //copiar encabezados de la consulta

                long cantidadColumnas = dt.Columns.Count;

                for (int ncolumna = 0; ncolumna < cantidadColumnas; ncolumna++)
                {

                    sw.Write(dt.Columns[ncolumna]);
                    if (ncolumna< cantidadColumnas - 1)
                    {

                        sw.Write(",");
                    }
                }

                sw.Write(sw.NewLine); //saltamos linea


                // copiar info linea por linea
                foreach (DataRow renglon in dt.Rows)
                {
                    for (int ncolumna = 0; ncolumna < cantidadColumnas; ncolumna++)
                    {
                        if (!Convert.IsDBNull(renglon[ncolumna]))
                        {

                            sw.Write(renglon[ncolumna]);
                        }
                        if (ncolumna< cantidadColumnas)
                        {

                            sw.Write(",");
                        }                        
                    }

                    sw.Write(sw.NewLine); //saltamos linea
                }
                sw.Close();
                con.Close();

            }
            catch (Exception e)
            {
             
  con.Close();
                MessageBox.Show(e.Message); 

            }  

        }

bottom of page