martes, 5 de febrero de 2008

UNION ALL en un DataSet

Bueno hoy me encontré con un problema que no se me había presentado juntar el resultado de 2 SP para ello como siempre me conecte a SQL Server 200X bueno acortando la historia me pidieron que de los 2 SP que tenia a la hora de mostrarlos de X forma se juntaran y de Y forma de separaran

DataSet1

DataSet2

Ahora con la ayuda del [ItemArray] , [Add] y un ciclo for no nos preocuparemos ya que al utilizar el método Add() podemos agregar arreglos de objetos y con la propiedad [ItemArray] obtendremos un arreglo de todas las columnas pertenecientes a un renglón [i]

//UNION ALL de DataSets


protected void btnUnionAll_Click(object sender, EventArgs e)
{
DataSet ds1 = (DataSet)Session["grid1"];
DataSet ds = (DataSet)Session["grid2"];
try
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ds1.Tables[0].Rows.Add(ds.Tables[0].Rows[i].ItemArray);
}
ds = ds1;
GridView3.DataSource = ds;
GridView3.DataBind();
}
catch (Exception ex)
{
string error = ex.Message.ToString();
}
Session["grid2"] = null;
Session["grid1"] = null;
}


UNION ALL DataSet1 y DataSet2

Y eso es todo espero les sirva de algo y si tienen alguna propuesta mejor o alguna idea que ahorre líneas o incremente performance pues ya saben donde proponerlas

1 comentario:

Anónimo dijo...

Es una forma muy funcional...por cierto!!!