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