DataGridView的列顺序为何总是乱(高分) 在设计时给列已排好的顺序,但运行时显示列乱七八糟,前面到了后面,后面到了前面,不知怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是否在设计的时候指定的列数量与SQL查询回来的列数量不符? 你是否在设计的时候指定的列数量与SQL查询回来的列数量不符?=====================================================有这种情况,顺序也不一致。有办法解决吗? 可以先在界面上就给datagridview添加全部的可能出现的列。顺序这时候由你定。等查询结果出来,绑定的时候给个循环,那些列要的就显示,那些列不要的就隐藏。这样绝对不会打乱顺序。 应该不会的 估计 是你没有把 自动生成列 设为false 你已经 自动绑定的数据源手动绑定就OK如果自动绑定 需要在SQL里 排好字段的顺序 贴上一下代码,不知道有没有帮助主要的是最后几行的数据再绑定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(); } 是Windows程序,我们办公室的同事每个人都一样,顺序会乱。不知大家的为何没有问题? 问题很简单,就是在查询语句中不要使用select *,而是使用select field1,field2,field3 from table的方式,同时在datagridview的各列的排列顺序要和查询中field1,field2,field3的顺序完全一致,就不会出现各列顺序混乱的问题。 当然了,各列设计时就建立,并且正确设置各列的DataPropertyName属性。 this.dataGridView1.AutoGenerateColumns = false;就ok了 this.dataGridView1.AutoGenerateColumns = false; 正解.跟SQL查询顺序没有关系。 this.dataGridView1.AutoGenerateColumns = false; 正解. dataGridView1.AutoGenerateColumns = false; dataGridView1.AutoGenerateColumns = false; winform 读取数据库小数据出现的怪问题。求解! c# 鼠标事件 网页刷新问题 在CS代码中怎么得到html文件中的元素,并进行操作 在ListView中,能否将几个图标综合后作为ListViewItem的图标 访问mysql数据库查询数据报错 怎么样调用DataGrid_EditCommand方法 拜师学艺 如何读取数据库中表a的最后一条数据,并每隔5秒读一次? 怎样让C#程序在98下运行. udp Socket 发送缓冲区 最大可以为多大?Socket.SendBufferSize C#如何实现从后向前截取字符串
=====================================================
有这种情况,顺序也不一致。有办法解决吗?
等查询结果出来,绑定的时候给个循环,那些列要的就显示,那些列不要的就隐藏。这样绝对不会打乱顺序。
估计 是你没有把 自动生成列 设为false
手动绑定就OK如果自动绑定 需要在SQL里 排好字段的顺序
{
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();
}
就ok了
正解.跟SQL查询顺序没有关系。
正解.