怪事,datagridview中的列显示顺序,与设计时的顺序不同?
---------------------------------
在设计界面上,编辑列,添加了所有列,并为每个列指定了对应数据表中的字段名,
然后运行时,用代码绑定 //按部门显示
private void showbybumen(string yf,string bm)
{
objgjj.GetGjjRecord(yf,bm,out mytable);
this.dataGrid1.DataSource = mytable;
lbljlts.Text = "记录条数:" + mytable.Rows.Count.ToString(); }其中,mytable 是一个 datatable 对象。
这样操作是对的,所有列都能取到,但是datagridview中列的顺序与设计时不一样。真是怪了。
我找不到原因在哪里,从第7列就开始不一样了。
---------------------------------
在设计界面上,编辑列,添加了所有列,并为每个列指定了对应数据表中的字段名,
然后运行时,用代码绑定 //按部门显示
private void showbybumen(string yf,string bm)
{
objgjj.GetGjjRecord(yf,bm,out mytable);
this.dataGrid1.DataSource = mytable;
lbljlts.Text = "记录条数:" + mytable.Rows.Count.ToString(); }其中,mytable 是一个 datatable 对象。
这样操作是对的,所有列都能取到,但是datagridview中列的顺序与设计时不一样。真是怪了。
我找不到原因在哪里,从第7列就开始不一样了。
select 中字段的顺序与datagridview中的顺序不一样,不知道有没有关系?我将select 语句中的顺序与 datagridview 中列的顺序写成一致后,这个问题就不发生了。但是我记得,以前 select 语句中字段的顺序是任意的,只要datagirdview 中按字段名对应上就行了,
为何今天不行了,问题出在哪里呢?真的要求 select 语句中的字段顺序与 datagridview 中列的顺序完全一样吗?
列名绝对没有绑错,但是 datagridview 中的列名,确实比 datatable 中的字段少,因为有些字段,我不想显示出来,所以没有添加这些列到 datagridview 中。
就是你select [] [] [] [] [] [] [] 各个的参数 是否正确
以下是例子我的select 语句是这样的
select autoid,编号,姓名,公积金,备注 from 公积金表 即有 5 个字段,但是我不想显示出 autoid 列,所以我的 datagridview,我添加了4列,分别是编号,姓名,公积金,备注这样显示后,顺序就出错了。我添加了一列 autoid,把这一列放在最左边, 就正常了。
可是我不想让 datagridview 中有 autoid 这一列呀。这一列不用显示,是保证惟一性用的,与显示无关,所以我不想显示在datagridview中
数量一样多,顺序一模一样。
datagridview1.datasource=dt; //再重新绑定
所有 DataTable 里 输出的字段都 要在 datagridview 设计里有对应的字段,包括 要隐藏的id列,默认列Visible 设置为False ,顺序就正确了,可以试下~