C#中Datagridview界面上显示出来了值但是代码获取时为null

DataGirdView用DataSource已经绑定好了值,
图中Datagridview界面上也已经显示出来了值,然后执行
string c = dgv_Handcappied.Rows[0].Cells[0].Value.ToString();时,获取到的值为null
执行完这一步就报错退出了
这是怎么回事?为什么获取不到值?Rows和Cells中的数字是多少都无法获取到值

第1个回答  2013-07-18
如果你的数据是自动绑定 AutoGenerateColumns="True"
而不是制定每一列DataField绑定哪个字段的话
在后台dgv_Handcappied.Rows[0].Cells[0] 就不好用了 因为它会认为你的GridView是0列 所以你去不到数据追问

我用的是DataSource,每列都设置了要绑定DataTable中数据的列的ID
另外一套程序同样的方法就能读取到。。。

追答

dgv_Handcappied.Rows[0].Cells[0].Text.ToString();试试

不行就把你整个方法发出来看看

第2个回答  推荐于2016-02-25
Hi you should add selected function for the control
private void datagridview1_SelectionChanged(object sender, EventArgs e)
{
if (datagridview1.SelectedCells.Count > 0)
{
int selectedrowindex = datagridview1.SelectedCells[0].RowIndex;

DataGridViewRow selectedRow = datagridview1.Rows[selectedrowindex];

string a = Convert.ToString(selectedRow.Cells["you have to mention you cell corresponding column name"].Value);
}
}追问

我是想不管选中哪行,都让它从列表的第0,0位置开始读取

本回答被提问者和网友采纳
第3个回答  2013-07-18
试试在获取单元格内容前加上这个
dataGridView1.EndEdit = false;
第4个回答  2024-10-10
遇到了一样的问题,题主有解决吗
第5个回答  2013-07-17
可以把报错信息发出来看看吗追问

调试的时候一步一步执行不报错,直接退出。不调试就是 未将对象引用到设置的实例,报错就指向那一句

相似回答