C# ADO.NET DataTable排序不反映在包含的数据集中
我想在数据集中对数据表进行排序。我有以下代码:C# ADO.NET DataTable排序不反映在包含的数据集中,c#,.net,datatable,ado.net,dataset,C#,.net,Datatable,Ado.net,Dataset,我想在数据集中对数据表进行排序。我有以下代码: DataTable dt = ds.Tables[0]; dt.TableName = "NEWNAME"; dt.DefaultView.ApplyDefaultSort = false; dt.DefaultView.Sort = "COL1 desc"; dt = dt.DefaultView.ToTable(); dt.AcceptChanges(); // <-- Break Point He
DataTable dt = ds.Tables[0];
dt.TableName = "NEWNAME";
dt.DefaultView.ApplyDefaultSort = false;
dt.DefaultView.Sort = "COL1 desc";
dt = dt.DefaultView.ToTable();
dt.AcceptChanges(); // <-- Break Point Here
ds.AcceptChanges();
DataTable dt=ds.Tables[0];
dt.TableName=“NEWNAME”;
dt.DefaultView.ApplyDefaultSort=false;
dt.DefaultView.Sort=“COL1 desc”;
dt=dt.DefaultView.ToTable();
dt.AcceptChanges();// 排序不会对任何内容进行排序。它只是一个字符串,当您需要像在行中一样构造一个新表时将使用它
dt = dt.DefaultView.ToTable();
在此之后,dt引用(使用从DefaultView.Sort获取的信息正确排序)不再指向ds.Tables[0]。这是一个全新的数据表
应用DefaultView.Sort的另一种方式是在DefaultView中循环,如中所示
foreach(DataViewRow dvr in ds.Tables[0].DefaultView)
{
// Here you get a row from the table sorted according to the property.
DataRow row = dvr.Row;
.....
}