C# winforms排序数据集

C# winforms排序数据集,c#,winforms,dataset,C#,Winforms,Dataset,是否可以将数据集ds的排序保存到XML文件中 namespace WindowsFormsApplication1 { public partial class Form1 : Form { DataSet ds = new DataSet(); public Form1() { InitializeComponent(); ds.ReadXml("file.xml");

是否可以将数据集ds的排序保存到XML文件中

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        DataSet ds = new DataSet();

        public Form1()
        {
            InitializeComponent();

            ds.ReadXml("file.xml");
            dataGridView1.DataSource = ds.Tables[0];


        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            DataRow dr = ds.Tables[0].NewRow();
            dr["FN"] = textBox1.Text;
            dr["LN"] =  textBox2.Text;
            ds.Tables[0].Rows.Add(dr);
            ds.Tables[0].DefaultView.Sort = "FN asc";

            ds.WriteXml("file.xml");
        }
    }
}
(通过上的公开)没有可用于序列化的机制,并且在保存
DataTable
实例时不会保存

也就是说,您最好创建一个可序列化的结构(使用您选择的任何序列化机制),并让它序列化
DataTable
以及
DataView
实例上与应用程序相关的
DefaultView
属性

但是,与之前一样,您可以将由
DefaultView
属性公开的
DataView
转换为
DataTable
,并将其保存。

从排序的
DataView
中使用


调用
DataTable.DefaultView.ToTable()
然后使用表的
WriteXml()
方法。我相信排序顺序会保持不变。

请不要在标题前加上“C”。这就是标记的作用。不,但您可以将视图转换为表,然后将其序列化。@kprobst更新了答案,并带有指向两个答案的链接。
ds.Tables[0].DefaultView.Sort = "FN asc";
var sortedTable = ds.Tables[0].DefaultView.ToTable();
sortedTable.WriteXml("file.xml");