【发布时间】:2013-11-21 22:22:42
【问题描述】:
我想在我的 DataGridView 验证时操作一个单元格,以便如果用户输入的值对数据库无效,但很容易转换为有效数据,程序会将值更改为适当的一个。
我能够正确验证我的值,但是当我尝试将其更改为有效值时,我得到了一个 DataError。这是我的代码:
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;
}
}
}
}
读取 cell.Value = rows[0]["Batch"]; 的行没有按照我的预期进行。
【问题讨论】:
-
请发布确切的错误信息并指出提到了哪一行代码。
标签: c# datagridview validating