2016-06-20 14 views
-1

DataGridviewの終了を知る検証があるかどうか知っていますか?データベースの更新を行っていますが、この行にエラーがスローされます(if(BANDASMAGNETICAS.Exists(x => x.Equals(item.cheques_banda_magnetica))))データグリッド。C#グリッド終了の検証

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();     
    }    
} 

よろしくお願いいたします。

+0

あなたが受け取ったエラーメッセージは何ですか? – PhilDulac

+0

こんにちはPhil、エラーメッセージ:mscorlib.dllで 'System.ArgumentOutOfRangeException'型の未処理の例外が発生しました。 インデックスが範囲外でした。負でなく、コレクション値のサイズより小さくなければなりません。 –

+0

「BANDASMAGNETICAS」の宣言はどのように見えますか? – PhilDulac

答えて

0

DataGridにレコードがなくobjChequesコレクションに多くのエラーが発生すると、変数iBandaMagneticaがエラーをスローするため、コード全体を変更する必要があります。

1.-私のようなデータテーブルのデータグリッド(dgvBaseArchivo)ソースに割り当てる必要があります:私は、この方法では

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"); 
     } 
    } 

DataTable dtRegistrosTXT = (DataTable)(dgvBaseArchivo.DataSource);

ActualizarBandaMagneticaをという名前のメソッドを()2.メイドデータグリッド上でのiBandaMagneticaの使用を避けてください。

関連する問題