Mostrando entradas con la etiqueta DataSet. Mostrar todas las entradas
Mostrando entradas con la etiqueta DataSet. Mostrar todas las entradas

lunes, 12 de noviembre de 2012

Como guardar un SqlDataSource en un DataSet en C#

Hoy he escrito un metodo en C# que permite usar un SqlDataSource para ser convertido en un DataSet.

A veces se da el caso que tenemos una fuente de datos en nuestra aplicacion, como un SqlDataSource y queremos de cierta forma manipular los datos que nos trae el data source pero no queremos duplicar codigo, es mejor utilizar y aplicar el principio DRY (Don’t Repeat Yourself) la traduccion es: No te repitas, para mas informacion: http://es.wikipedia.org/wiki/No_te_repitas

Lo que hace el metodo en esencia es pasarle la configuracion y los parametros del SqlDataSource a un SqlConnection.

Este es el metodo:

public DataSet SQLDataSource2DataSet(SqlDataSource SqlDS)
   
{

       
DataSet tabla = new DataSet();

       
SqlConnection conex = new SqlConnection();
       conex
.ConnectionString = SqlDS.ConnectionString;
       
SqlCommand comando = new SqlCommand();
       comando
.CommandText = SqlDS.SelectCommand;


       
//aqui le pasamos uno a uno los comandos

       
foreach (var param in SqlDS.SelectParameters.Cast<Parameter>())
       
{
try
           
{
               comando
.Parameters.Add(new SqlParameter(param.Name, param.DefaultValue));
           
}
           
catch (Exception ex)
           
{
           
// TODO
           
}
       
}

       comando
.Connection = conex;
       conex
.Open();
       
SqlDataAdapter parellenar = new SqlDataAdapter(comando);

       parellenar
.Fill(tabla); // llenamos el DataSet.
       conex
.Close();
       
return tabla;

   
}


Nota:
Para que este metodo funcione bien debemos asegurarnos de que los DefaultValue de los parametros del data source no sean null.