c# 中DataView的Sort问题

DataView dv = dt.DefaultView;
dv.Sort = "value DESC";
dt = dv.ToTable();

dt.DefaultView.Sort = "value DESC";
二者有什么区别吗?
两次查出来的数据放在同一个DataTable里,第二次放进去的数据只有一条;下面的哪一句排序时会忽略第二次查出来的结果,求大神解答为什么?

第一种写法根据value字段值降序排列并更新原来的DataTable,第二种写法没有更新DataTable,只是将排序后的结果放在默认视图中。

另外你后面的话没看懂。追问

我dt里面放的是分两次从数据库里查出的数据,第二次查出来的数据是另一个数据库里的,而且只有一条。
我用上面写的两种方法进行排序,第一种方法得出的结果是对的,但是用第二种方法排序得出的结果不对:第二次查出的那条数据没有被排序,还是在dt的最后一行,但是第一次查出的数据都被排序了。
求大神解释为啥

追答

懂你的意思了,那就是我刚才说的那个:第二种写法没有更新DataTable,它只是把排序后的结果暂存在dt.DefaultView里,可以用dt.DefaultView获取排序后的数据。只有执行了ToTable()方法才会根据DefaultView创建一个新DataTable。

dt和dt.DfaultView是两个东西。

温馨提示:内容为网友见解,仅供参考
无其他回答

c# 中DataView的Sort问题
第一种写法根据value字段值降序排列并更新原来的DataTable,第二种写法没有更新DataTable,只是将排序后的结果放在默认视图中。另外你后面的话没看懂。

c#里面dataview的sort属性有什么用?
GridView属性有个是否启用排序,如果启用排序后,在每个列的编辑字段中有按照那个字段排序的选择,比如姓名 你选择数据 name就行了

c#中关于 dataView的问题
要想实现排序功能,首先设置数据列表控件为允许排序.比如用datagrid 其次用sqldataadapter对象从数据库中提取数据放入dataset对象中,接着就创建视图对象了DataView dataView =dataset.Tables[0].DefaultView;dataView.Sort = " Grade desc";然后设置数据列表控件的datasource为dataView;DataGrid1.DataSource=dat...

C#对datagridview数据排序
假设数据源为DataView,ID为objDV.string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];objDV.Sort = sort;this.GridView1.DataSource = objDV;this.GridView1.DataBind();--- 4.在GridView的Sorting事件中:protected void GridView1_Sorting(object sender, ...

c# dataview 排序, 以数值的方式升序排序
datagridview.Sort(colunm1,direction)

c#DataGridView 控件被数据绑定.该控件不能使用比较器来执行排序操作...
dataTable.DefaultView.Sort的值可以是列名+排序方向,多重排序使用逗号分隔,如”MyColumn1 ASC“,”MyColumn1 ASC,MyColumn2 DESC“。此外,对DefaultView的排序会直接引发dgv的重绑定,不需要自己重绑。当然,如果你要实现极为复杂的排序算法,要么在DataTable上直接做,要么自己override DataView的相关...

C#;麻烦好心人:如何实现dataGridView的筛选?
在你的筛选按钮里面 假如现在你的表格的datasource对应了一个datatable dt 那现在你定义一个dataview dv=new dataview(dt)然后 dv.filter=string.format("列明 like '%{0}%'",textbox的值);datagridview1.datasource=dv;

C#用datagriview控件增加删除行数据,并且更新到xml中,求代码(急)如图...
"); } } \/\/ DataGridView中加载数据 private void LoadData(DataTable dt, DataGridView dgv) { dgv.Rows.Clear();\/\/datagridview清空数据 if (dt != null && dt.Rows.Count > 0) { dgv.Rows.Add(dt.Rows.Count); for (int i = 0; i < dt.Rows.Co...

DataSet,DataTable,DataView在C#中三者的关系是什么?
DataSet 是一个盒子DataTable 是一个有数据的表格DataView 是能看到的表格的样子盒子里面可以放多个表格,每个表格有自己默认的名字和索引位置;同一个表格可以有多种样子。但是任何一个样子必须是属于某一个表格的;而任何一个表格也都是装在确定的盒子里的。也就是说,盒子是必须存在的,你可以直接...

c# DataTable中如何能根据两个字段排序?order a,b这样
DataTable dt = new DataTable();DataView dv = dt.DefaultView;dv.Sort = "CLOUMN ASC"; \/\/排序DataTable dt2 = dv.ToTable();

相似回答