您知道是否有任何验证可以知道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();
}
}
问候!!!
答案 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。