C#网格验证结束

时间:2016-06-20 23:23:52

标签: c# datagridview

您知道是否有任何验证可以知道datagridview的结束?我正在对数据库进行更新,但是我的代码在此行引发错误(如果(BANDASMAGNETICAS.Exists(x => x.Equals(item.cheques_banda_magnetica)))),因为有更多的记录在db比datagrid。

foreach (var item in objCheques)
{
   if (BANDASMAGNETICAS.Exists(x => x.Equals(item.cheques_banda_magnetica)))
   {
       string sBanda = BANDASMAGNETICAS[iBandaMagnetica].ToString();
       Ext_Cheques.ActualizarBandaMagnetica(sBanda, false);
       item.cheques_suc = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["# SUC"].Value.ToString();
       item.cheques_cod_aut = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["COD_AUT"].Value.ToString();
       item.cheques_dig_pre = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["DIG_PRE"].Value.ToString();
       item.cheques_cve_ope = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["CVE_OPE"].Value.ToString();
       item.cheques_plaza = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["PLAZA"].Value.ToString();
       item.cheques_banco = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["BANCO"].Value.ToString();
       item.cheques_dig_int = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["DIG_INT"].Value.ToString();
       item.cheques_cuenta = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["CUENTA"].Value.ToString();
       item.cheques_cheque = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["# CHEQUE"].Value.ToString();
       item.cheques_banda_magnetica = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["BANDA MAGNETICA"].Value.ToString();
       item.cheques_fecha_deposito = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["FECHA_DEPOSITO"].Value.ToString();
       item.cheques_fecha_liberacion = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["FECHA_LIBERACION"].Value.ToString();
       item.cheques_importe_cheque = dgvBaseArchivo.Rows[iBandaMagnetica].Cells["IMPORTE_CHEQUE"].Value.ToString();
       item.cheques_activo = true;
       //item.Insert();                   
   }            
}

问候!!!

1 个答案:

答案 0 :(得分:0)

感谢您的帮助,但我必须更改整个代码,因为当datagrid没有更多记录且objCheques集合有更多时,变量iBandaMagnetica会抛出错误。

1.-我必须为数据表分配datagrid(dgvBaseArchivo)来源,如:DataTable dtRegistrosTXT = (DataTable)(dgvBaseArchivo.DataSource);

2.制作名为ActualizarBandaMagnetica()的方法:

    private void ActualizarInsertarBandaMagnetica()
    {
        if (dgvBaseArchivo.Rows.Count <= 0)
        {
            MessageBox.Show("Primero carga el archivo", "Banco Azteca Cheques");
            return;
        }
        else
        {

            Ext_ChequesCollection objCheques = Ext_Cheques.GetAll();

            foreach(DataRow row in dtRegistrosTXT.Rows)
            {
                Thread myThread = new Thread(() => this.BuscarCheque(row, objCheques));
                myThread.Start();
                Procesando++;
            }
            timerProcesar.Stop();
            FinProc = DateTime.Now;

            Invoke(new MethodInvoker(delegate
            {
                cmdGuardar.Enabled = true;
                cmdUploadFile.Enabled = true;
            }));

            MessageBox.Show("Proceso Finalizado", "Banco Azteca Cheques");
        }
    }

使用这种方法,我避免在数据网格上使用iBandaMagnetica。