C# 这个错代表什么?

来源:百度知道 编辑:UC知道 时间:2024/07/02 23:51:08
代码:int TrainID = (int)this.dataGridView1.SelectedRows[0].Cells["TrainID"].Value; //这是声明一个变量TrainID接收 DataGridView选中项的TrainID值

报错:未将对象引用设置到对象的实例。错误标题是:未处理 NullReferenceException

空引用的错误:
this.dataGridView1.SelectedRows[0].Cells["TrainID"].Value,这个Value的值不存在。

dataGridView1.SelectedRows[0].Cells["TrainID"].Value没有得到值

检查下 SQL语句 吧
也有可能是你在做绑定的时候 绑定的有问题

补充:

首先看下 dataGridView1.DataSource=.. 后面的数据源 是否是空值;
再有就是dataGridView1的["TrainID"]字段是否是空值。

说明this.dataGridView1.SelectedRows[0].Cells["TrainID"].Value这里没有得到值,你加个断点看看。

看着你好像要获取被选中行"TrainID"字段的值,可以这样写:
int TrainID=Convert.ToInt16(this.dataGridView1.CurrentRow.Cells["TrainID"].Value);

若还不行,就要看看"TrainID"列名有没有改变,是不是"ColumnXX"?!

未将对象引用设置到对象的实例
你以后看到这个 就说明你的程序中存在空对象 你想引用这个空对象就导致了异常的发生

this.dataGridView1.SelectedRows[0].Cells["TrainID"].Value
没有取到值

int TrainID=0;
if(this.dataGridView1.SelectedRows.Count>0)
TrainID = (int)this.dataGridView1.SelectedRows[0].Cells["TrainID"].Value;