Me gustaría manipular una celda en mi DataGridView cuando está validando para que si el usuario ingresa un valor que no es válido para la base de datos, pero se convierte fácilmente en datos válidos, el programa cambie el valor a uno apropiado.Validación de DataGridView y cambio de valor de celda
Puedo validar mi valor correctamente, pero cuando intento cambiarlo a algo válido obtengo un DataError. Aquí está mi código:
private void unit_List_2_GroupsDataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
Console.WriteLine("Validating");
DataGridViewColumn col = this.unit_List_2_GroupsDataGridView.Columns[e.ColumnIndex];
DataGridViewCell cell = this.unit_List_2_GroupsDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (col == this.batchDataGridViewTextBoxColumn && this.unit_List_2_GroupsDataGridView.IsCurrentCellInEditMode)
{
Console.WriteLine(" Batch Column");
DataRow[] rows = label_EntryDataSet.viewJobBatchList.Select(String.Format("Job={0} AND Display='{1}'"
, comboBox1.SelectedValue, e.FormattedValue));
if (rows.Length == 1)
{
Console.WriteLine(" Auto Completed item from list: {0}", rows[0]["Batch"]);
//e.Cancel = true;
cell.Value = rows[0]["Batch"];
//this.unit_List_2_GroupsDataGridView.EndEdit();
}
else
{
Console.WriteLine(" No Autocomplete!");
int i = 0;
if (!int.TryParse(e.FormattedValue.ToString(), out i))
{
Console.WriteLine(" Not an integer either");
e.Cancel = true;
}
}
}
}
La línea que dice Celda.Value = filas [0] [ "lotes"]; no está haciendo lo que espero que haga.
Por favor, publique el mensaje de error exacto y señale qué línea de código se menciona. – David