日期:2014-05-17  浏览次数:20473 次

如何根据行号取得DataGridView的某一行数据
首先,我通过查询数据库,把得出的DataTable绑定到ObjectDataSource1,然后把ObjectDataSource1与DataGridView1绑定,

现在的问题是,在选择了DataGridView1的某一行之后,我如何得到该行的数据?试过很多网上的方法,
要么得到的都是空值,比如:
DataGridView1.Rows[i].Cells[j].Text

要么报错“未将对象引用设置到对象的实例”,比如:
this.SmartGridView1.SelectedDataKey.Value.ToString();
或者下面的方法也是“未将对象引用设置到对象的实例”:
DataTable dt = ((DataView)((ObjectDataSource)this.DataGridView1.DataSource).Select()).Table; 

现在能得到行号,通过行号,我能否从ObjectDataSource1得到想要的数据呢?再查一遍数据库太没有效率了,初学者,请大家详细指教,谢谢!

------解决方案--------------------
null错误要么是Rows[i]不存在,要么就是Rows[i].Cells[j]不存在,你注意索引是否正确
------解决方案--------------------
不懂LZ是否每次加载页面都重新绑定数据呢?

            if (!IsPostBack)
            {
               ...//绑定数据
            }
------解决方案--------------------
DataTable可以直接绑定到DataGridView1,为嘛还要多此一举呢?
------解决方案--------------------
AspNetPager.dll