winforms排序数据集

本文关键字:数据集 排序 winforms | 更新日期: 2023-09-27 18:27:28

是否可以将数据集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");
        }
    }
}

winforms排序数据集

DataView类(通过DataTable类上的DefaultView属性公开)没有可以序列化的机制,并且在保存DataTable实例时不会保存。

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

但是,正如其他人所提到的,可以DefaultView属性公开的DataView转换为DataTable,并保存该。

调用DataTable.DefaultView.ToTable(),然后使用表的WriteXml()方法。我相信分拣顺序会维持下去。

从已排序的DataView创建一个新的DataTable,并使用它的WriteXml方法。

ds.Tables[0].DefaultView.Sort = "FN asc";
var sortedTable = ds.Tables[0].DefaultView.ToTable();
sortedTable.WriteXml("file.xml");