在设计时给列已排好的顺序,但运行时显示列乱七八糟,前面到了后面,后面到了前面,不知怎么办?

解决方案 »

  1.   

    你是否在设计的时候指定的列数量与SQL查询回来的列数量不符?
      

  2.   

    你是否在设计的时候指定的列数量与SQL查询回来的列数量不符?
    =====================================================
    有这种情况,顺序也不一致。有办法解决吗?
      

  3.   

    可以先在界面上就给datagridview添加全部的可能出现的列。顺序这时候由你定。
    等查询结果出来,绑定的时候给个循环,那些列要的就显示,那些列不要的就隐藏。这样绝对不会打乱顺序。
      

  4.   

    应该不会的 
    估计 是你没有把 自动生成列 设为false
      

  5.   

    你已经  自动绑定的数据源
    手动绑定就OK如果自动绑定 需要在SQL里 排好字段的顺序
      

  6.   

    贴上一下代码,不知道有没有帮助主要的是最后几行的数据再绑定private void setSort(DsList ds, string sDsNm, string sortKey, GridView gv)
        {
            
            DataSet dsWk = ds;
            
            DataSet _Copyds = dsWk.Clone();
            
            DataTable _Copydt = _Copyds.Tables["C_ANKEN"];
            
            DataView dv = new DataView(dsWk.Tables["C_ANKEN"]);        string wkSort = "";
            string sView = sDsNm + "_" + sortKey;        if (ViewState[sView] != null)
            {            
                wkSort = ViewState[sView].ToString();
            }        string sSort = "";
            
            if (wkSort.Equals(" asc"))
            {
                sSort = " desc";
            }
            else
            {
                sSort = " asc";
            }               dv.Sort = sortKey + sSort;
            
            foreach (DataRowView drv in dv)
            {
                _Copydt.ImportRow(drv.Row);
            }
            
            ds.Clear();
            
            ds = (DsList)_Copyds.Copy();
            
            ViewState[sDsNm] = ds;
            
            ViewState[sView] = sSort;
            
            gv.DataSource = ds.C_ANKEN;
            
            gv.PageIndex = 0;
            
            gv.DataBind();
        }
      

  7.   

    是Windows程序,我们办公室的同事每个人都一样,顺序会乱。不知大家的为何没有问题?
      

  8.   

    问题很简单,就是在查询语句中不要使用select *,而是使用select field1,field2,field3 from table的方式,同时在datagridview的各列的排列顺序要和查询中field1,field2,field3的顺序完全一致,就不会出现各列顺序混乱的问题。
      

  9.   

    当然了,各列设计时就建立,并且正确设置各列的DataPropertyName属性。
      

  10.   

     this.dataGridView1.AutoGenerateColumns = false;
    就ok了 
      

  11.   

    this.dataGridView1.AutoGenerateColumns = false; 
    正解.跟SQL查询顺序没有关系。
      

  12.   

    this.dataGridView1.AutoGenerateColumns = false;  
    正解.
      

  13.   

    dataGridView1.AutoGenerateColumns = false;
      

  14.   

    dataGridView1.AutoGenerateColumns = false;