C# DataGridView.DataError.ReadOnlyException
当我想对datagridview的数据应用更改时,会出现此错误。有趣的是,错误只会在午夜(00:00)之后发生,然后才会生效C# DataGridView.DataError.ReadOnlyException,c#,.net,visual-studio,winforms,datagridview,C#,.net,Visual Studio,Winforms,Datagridview,当我想对datagridview的数据应用更改时,会出现此错误。有趣的是,错误只会在午夜(00:00)之后发生,然后才会生效 if(dgvDatabaseData.CurrentCell.ColumnIndex==11){ 如果(dgvDatabaseData.CurrentCell.Value==null|| dgvDatabaseData.CurrentCell.Value==DBNull.Value|| String.IsNullOrWhiteSpace(dgvDatabaseData.C
if(dgvDatabaseData.CurrentCell.ColumnIndex==11){
如果(dgvDatabaseData.CurrentCell.Value==null||
dgvDatabaseData.CurrentCell.Value==DBNull.Value||
String.IsNullOrWhiteSpace(dgvDatabaseData.CurrentCell.Value.ToString())
{
dgvDatabaseData.CurrentCell.Value=“启动”/(此处发生错误)
dgvDatabaseData.CurrentRow.Cells[10]。Value=“保留”/(此处发生错误)
}
否则{
dgvDatabaseData.CurrentCell.Value+=“+启动”;
}
dgvDatabaseData.NotifyCurrentCellDirty(true);
}
DGV的ReadOnly设置为false我有点奇怪,为什么您会认为代码会因为午夜之后而停止工作?小精灵午夜后编码?:-)我可以向你保证时间不是问题 从错误中可以看出,
数据源
(我假设它是一个数据表)的第11列设置为只读。当设置为true
时,DataTables
列只读属性将覆盖网格只读属性。因此,如果网格数据源
是一个数据表
,则在尝试设置单元格值之前,只需将columns read only属性设置为false
如果网格DataTable
是全局的,那么只需
myDataTable.Columns[11].ReadOnly = false;
如果网格数据源
不是全局的,但它是一个数据表
,那么
DataTable dt = (DataTable)dataGridView1.DataSource;
dt.Columns[11].ReadOnly = false;
最后,我假设这个列在别处被设置为只读,或者它来自数据库,是只读的。目前尚不清楚该列是否应为只读。如果要将其设置为只读,则可能需要在代码设置完单元格值后,将columns read only属性恢复为true