Ir al contenido principal

Entradas

Mostrando las entradas de octubre, 2013

Como Sortear una DataTable

Cuando necesitamos que los datos que mostramos en un GridView esten ordenados por una determinada columna es necesario que el DataTable que usamos como DataSource este ordenado por esa columna. Esto se hace de la siguiente manera:   //Creamos nuestro objeto DataTable DataTable dt = new DataTable(); JobOrder job = new JobOrder(); //Lo llenamos con datos dt = job.GetPendingToReq("ACEVI"); //Definimos la columna por la que hay que sortearlo dt.DefaultView.Sort = "platform, jobid DESC"; //Lo asignamos como propiedad de nuestro GridView this.GridView1.DataSource = dt; //Llamamos al metodo DataBind() del GridView this.GridView1.DataBind()   Con esto ya tenemos nuestro Grid con los datos ordenados por la columna que deseamos.

Usar GetData.DataTableAppend() en lugar de UNION ALL

Algunas veces usamos UNION ALL de SQL para unir el resultado de varias consultas en un mismo conjunto de datos, pero tiene el inconveniente de que es muy lento ya que mantiene los candados en la base de atos por mientras efectua toda la consulta. Una mejor manera de hacer esto es usar el Metodo DataTableAppend() de la clase GetData(); Por ejemplo, si tenemos dos consultas SQL: Por ejemplo, si tenemos dos consultas SQL: "SELECT customer_id, customer_name FROM customer WHERE cost_center = 'DIS-A'" y "SELECT customer_id, customer_name FROM customer WHERE cost_center = 'CCI'" con SQL seria: GetData() gt = new GetData(); gt.SentenciaSQL = "SELECT customer_id, customer_name " + "FROM customer WHERE cost_center = 'DIS-A' " +"UNION ALL " + "SELECT customer_id, customer_name " + "FROM customer " + "WHERE cost_center = 'CCI'"; DataTable dt = gt.GetDataTable(); en cambio con DataTabl...

Agregar una columna autonumerica a un DataTable

Para agregar una columna autonumérica a una  DataTable es necesario crear un objeto DataTable y un objeto Column que tenga la propiedad AutoIncrement en true y luego agregarlo a la  DataTable que deseamos como en el siguiente ejemplo: DataTable myDt = new DataTable(); DataColumn dc = new DataColumn(); dc.ColumnName = "#"; dc.DataType = typeof(int); dc.AutoIncrement = true; dc.AutoIncrementSeed = 1; dc.AutoIncrementStep = 1; BoardCode bc = new BoardCode(); DataTable dt = bc.GetHoldersByBcID(int.Parse(this.TextBox1.Text)); myDt.Columns.Add(dc); myDt.Merge(dt); this.GridView1.DataSource = myDt; this.GridView1.DataBind(); Asi, cuando la despleguemos en un DataGridView se mostrará en la primera columna con un contador de renglones.