winforms排序数据集

时间:2012-03-12 21:42:02

标签: c# winforms dataset

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

3 个答案:

答案 0 :(得分:0)

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

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

但是,mentioned作为others,您可以DataView属性公开的DefaultView转换为DataTable并保存

答案 1 :(得分:0)

来自已排序DataView

Create a new DataTable并使用WriteXml-Method

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

答案 2 :(得分:0)

调用DataTable.DefaultView.ToTable(),然后使用表格的WriteXml()方法。我相信排序顺序会得到维护。