recorrigo en foreach
Publicado por alexis (59 intervenciones) el 26/02/2015 23:00:48
buenas tardes que tal, tengo problemas en mi aplicacion web echa en aspx en c # visual estudio 2008
el data table tiene 24 mil registros el terminar ese ciclo me esta demorando casi 20 minutos
hay alguna forma de mejorar eso?
este es el codigo que tengo
foreach (DataRow drf in dtPODetail.Rows)
{
LogRef = new adLogTrxRef();
LogRef.no_trx = int.Parse(Session["SPno_trx"].ToString());
LogRef.linea_no = 0;
LogRef.departamento = drf["style_dept_code"].ToString().Trim();
LogRef.no_po = drf["no_po"].ToString().Trim();
LogRef.status_po_ref = drf["status_po_ref"].ToString().Trim();
LogRef.bo_po = drf["bo_po"].ToString().Trim();
LogRef.style_code = drf["style_code"].ToString().Trim();
LogRef.style_color_code = drf["style_color_code"].ToString().Trim();
LogRef.style_dim_code = drf["style_dim_code"].ToString().Trim();
LogRef.no_item = drf["item_no"].ToString().Trim();
LogRef.bodega = drf["bodega"].ToString().Trim();
LogRef.costo_unitario = decimal.Parse(drf["costo_unitario"].ToString().Trim());
dQty = decimal.Parse(drf["qty_ordered"].ToString());
LogRef.qty_ordered = Convert.ToInt32(dQty);
LogRef.temporada_cod_compra = drf["temporada_cod_compra"].ToString().Trim();
LogRef.temporada_ano_compra = drf["temporada_ano_compra"].ToString().Trim();
LogRef.comentario_po = drf["comentario_po"].ToString().Trim();
if (drf["etd_orig"] != null && drf["etd_orig"].ToString().Trim() != "")
{
LogRef.etd_orig = int.Parse(drf["etd_orig"].ToString().Trim());
}
if (drf["etd_rev"] != null && drf["etd_rev"].ToString().Trim() != "")
{
LogRef.etd_rev = int.Parse(drf["etd_rev"].ToString().Trim());
}
LogRef.temporada_cod_vta = drf["temporada_cod_vta"].ToString().Trim();
LogRef.temporada_ano_vta = drf["temporada_ano_vta"].ToString().Trim();
LogRef.no_proveedor = drf["vend_no"].ToString().Trim();
LogRef.pty = drf["pty"].ToString().Trim();
LogRef.entrada_no = drf["entrada_no"].ToString().Trim();
LogRef.status_entradas = drf["status_entradas"].ToString().Trim();
LogRef.country_shipment_ref = drf["country_shipment_ref"].ToString().Trim();
LogRef.style_name = drf["style_name"].ToString().Trim();
LogRef.size = drf["talla"].ToString().Trim();
LogRef.status_sw = lnLogicData.StatusNoBooked(ref errorInfo);
if (!string.IsNullOrEmpty(drf["cubicaje"].ToString()))
LogRef.cbm = decimal.Parse(drf["qty_ordered"].ToString()) * decimal.Parse(drf["cubicaje"].ToString());
else
LogRef.cbm = 0;
LogRef.id_poordlin = int.Parse(drf["id_poordlin"].ToString());
LogTRX.TrxRefCollection.Add(LogRef);
}
el data table tiene 24 mil registros el terminar ese ciclo me esta demorando casi 20 minutos
hay alguna forma de mejorar eso?
este es el codigo que tengo
foreach (DataRow drf in dtPODetail.Rows)
{
LogRef = new adLogTrxRef();
LogRef.no_trx = int.Parse(Session["SPno_trx"].ToString());
LogRef.linea_no = 0;
LogRef.departamento = drf["style_dept_code"].ToString().Trim();
LogRef.no_po = drf["no_po"].ToString().Trim();
LogRef.status_po_ref = drf["status_po_ref"].ToString().Trim();
LogRef.bo_po = drf["bo_po"].ToString().Trim();
LogRef.style_code = drf["style_code"].ToString().Trim();
LogRef.style_color_code = drf["style_color_code"].ToString().Trim();
LogRef.style_dim_code = drf["style_dim_code"].ToString().Trim();
LogRef.no_item = drf["item_no"].ToString().Trim();
LogRef.bodega = drf["bodega"].ToString().Trim();
LogRef.costo_unitario = decimal.Parse(drf["costo_unitario"].ToString().Trim());
dQty = decimal.Parse(drf["qty_ordered"].ToString());
LogRef.qty_ordered = Convert.ToInt32(dQty);
LogRef.temporada_cod_compra = drf["temporada_cod_compra"].ToString().Trim();
LogRef.temporada_ano_compra = drf["temporada_ano_compra"].ToString().Trim();
LogRef.comentario_po = drf["comentario_po"].ToString().Trim();
if (drf["etd_orig"] != null && drf["etd_orig"].ToString().Trim() != "")
{
LogRef.etd_orig = int.Parse(drf["etd_orig"].ToString().Trim());
}
if (drf["etd_rev"] != null && drf["etd_rev"].ToString().Trim() != "")
{
LogRef.etd_rev = int.Parse(drf["etd_rev"].ToString().Trim());
}
LogRef.temporada_cod_vta = drf["temporada_cod_vta"].ToString().Trim();
LogRef.temporada_ano_vta = drf["temporada_ano_vta"].ToString().Trim();
LogRef.no_proveedor = drf["vend_no"].ToString().Trim();
LogRef.pty = drf["pty"].ToString().Trim();
LogRef.entrada_no = drf["entrada_no"].ToString().Trim();
LogRef.status_entradas = drf["status_entradas"].ToString().Trim();
LogRef.country_shipment_ref = drf["country_shipment_ref"].ToString().Trim();
LogRef.style_name = drf["style_name"].ToString().Trim();
LogRef.size = drf["talla"].ToString().Trim();
LogRef.status_sw = lnLogicData.StatusNoBooked(ref errorInfo);
if (!string.IsNullOrEmpty(drf["cubicaje"].ToString()))
LogRef.cbm = decimal.Parse(drf["qty_ordered"].ToString()) * decimal.Parse(drf["cubicaje"].ToString());
else
LogRef.cbm = 0;
LogRef.id_poordlin = int.Parse(drf["id_poordlin"].ToString());
LogTRX.TrxRefCollection.Add(LogRef);
}
Valora esta pregunta


0