none
Como asignarle el resultado de una consulta SQL a una variable en C# RRS feed

  • Pregunta

  • Estoy tratando de generar un reporte .txt con información que tengo en la base de datos, Necesito ayuda de como hacer eso, si es posible asignarle el resultado a una variable para despues usar el StreamWriter y escribir en el archivo.

    Saludos!

    sábado, 17 de febrero de 2018 4:23

Respuestas

  • Los automatismos que existen para asignar el resultado de una consulta a una variable utilizan típicamente una variable de tipo tabular, para almacenar las filas y las columnas devueltas por la consulta (es decir, no almacenan de manera directa un txt que tenga todo concatenado a la vez). Por ejemplo, podrías configurar un DataAdapter con la consulta y luego usarlo para trasvasar el resultado de la consulta a una variable de tipo DataTable:

    SqlConnection cn = new SalConnection(cadenaDeConexion);
    SqlDataAdapter da = new SqlDataAdapter("Select loquesea from mitabla", cn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    // Ahora, dt es una variable que contiene el resultado de la consulta

    Para pasar esos dato de filas y columnas a un StreamWriter habría que escribir dos bucles anidados que recorran la tabla, por ejemplo así:

    foreach (DataRow dr in dt.Rows)
    {
        bool primeraColumna = true;
        foreach (DataColumn dc in dt.Columns)
        {
            if (!primeraColumna)
            {
                  miStreamWriter.Write(", ");
            }
            primeraColumna = false;
            string texto = dr[dc.Name].ToString();
            miStreamWriter.Write("\"" + texto + "\"");
        }
        miStreamWriter.WriteLine();
    }

    sábado, 17 de febrero de 2018 17:17
    Moderador