C# 中 DataGridView 中的一个错误啊
错误如图:
只是 一个 DataGridView 控件
DataGridView1.AutoGenerateColumns = false; 不自动生成表头了。
------最佳解决方案--------------------
for(int i=0;i<dgv.Rows.Count-1;i++)//是这个问题吗?
{
}
------其他解决方案--------------------我也遇到过这样的问题,可能你的datagreiw最下面是空行 ,null无法转换为string类型 只要判断最后一行,然后Continue就好啦
if(i==datagreiew.row.count)
continue;
------其他解决方案--------------------14楼说的很可能可以解决你的问题,datagridview最下面自动生成的可添加行 它的value就是null
------其他解决方案--------------------你调试的时候看下Value是否有值。
或者看下dgv里面是什么数据。
------其他解决方案--------------------给你个提示,先去看看datatable是否有值
我认为这个错就是因为没有值
------其他解决方案--------------------看一下是dgv.Rows[i].Cells[0]是null还是他的value是null
------其他解决方案--------------------具体也没看明白,楼主多在即时窗口里看看
另外,楼主也转个弯,别老用这个方法做,看你的代码片段 貌似你要个性化显示dgv里的数据,dataGridView里有很多事件可以搞这个效果的;
比如:数据库里的性别都是0和1表示,那么显示到界面上要显示“男”和“女” 那么就可以使用dgv的很多事件实现,楼主去网上搜一下
------其他解决方案--------------------if (row.Cells["ColuAlertId"].Value.ToString() != "0") 改成这样的 同样不成功
------其他解决方案--------------------
每个表头都绑定了 数据库张的字段了, 数据源中的字段
------其他解决方案--------------------
确定有数据,count 不为0,更 Value 的值有关系吗?
------其他解决方案--------------------
这个有关系吗?
在另一处 使用
TBoxTimes.Text = m_Dgv.CurrentRow.Cells["ColuTime"].Value.ToString();
TBoxPerson.Text = m_Dgv.CurrentRow.Cells["ColuPerson"].Value.ToString();
TBoxDataItem.Text = m_Dgv.CurrentRow.Cells["ColuDataItem"].Value.ToString();
TBoxItemName.Text = m_Dgv.CurrentRow.Cells["ColuCItem"].Value.ToString();
是可以取值的。没问题。
------其他解决方案--------------------
您的意思是和控件使用没有关系,
而是在这个判断有问题?
------其他解决方案--------------------好像以前也遇到过这个情况,不太记得当时是怎么处理的
貌似将datagridview的datasource属性绑定一个datatable或者dataview,然后再确定选中的单元格有值就行了吧
------其他解决方案--------------------当运行报错的时候:选中dgv.Rows[i].Cells[0]这一句。然后点击右键选择“快速监视”,看一下是不是空的,如果不是空的,dgv.Rows[i].Cells[0].Value同样试一下这几句是不是空的。
------其他解决方案--------------------