Compartir a través de


Como guardar un SqlDataSource en un DataSet en C# (es-ES)

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.**