DataGridView 单击表头问题

DataGridView 没有直接绑定数据源,而是用代码获得一个数据源,然后设置datagridview1.datasource=ds.table[0];
运行时能出数据,但就是单击表头(表的字段名称时)就会出现一个"未将对象引用设置到对象实例"的异常.
请问这是什么问题,应该如果处理?
private void Form1_Load(object sender, EventArgs e)
{
string sql = "select StCode as 仓库编码,StName as 仓库名称,StPlantCode as 工厂编码,StMemo as 仓库属性 from tableName";
DataTable dt = ExecuteDataTable(ConStrOra1, sql);//这个方法执行后返回一个DataTable,ConStroral是数据库连接字符串
dataGridView1.DataSource = dt;
}

我没有采用CellClick 事件.只是用了SelectionChanged来获取点击行的数据.
selectionChanged 事件去除后,点击就不会出错了.为什么会这样?可是我想获取该行的值并传到其它控件上,这该如何解决?
代码啊?

补充:
这个代码看不出什么问题啊?
检查一下搭弯侍是不是写个datagridview的其他事件!
例如cellClick.排序什么知吵的闹困!