набор данных сортировки winforms - PullRequest
3 голосов
/ 13 марта 2012

возможно ли сохранить сортировку набора данных 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 голосов
/ 13 марта 2012

Создайте новый DataTable из вашего отсортированного DataView и используйте его WriteXml-Method .

ds.Tables[0].DefaultView.Sort = "FN asc";
var sortedTable = ds.Tables[0].DefaultView.ToTable();
sortedTable.WriteXml("file.xml");
0 голосов
/ 13 марта 2012

Вызовите DataTable.DefaultView.ToTable() и затем используйте метод таблицы WriteXml().Я считаю, что порядок сортировки будет поддерживаться.

0 голосов
/ 13 марта 2012

Класс DataView (который предоставляется через свойство DefaultView в классе DataTable ) не имеет механизма, с помощью которого он может быть сериализован и не сохраняется при сохранении экземпляра DataTable.

Тем не менее, вам лучше создать структуру, которую можно сериализовать (используя любой выбранный вами механизм сериализации), и заставить ее сериализовать DataTable вместе со свойствами экземпляра DataView, предоставляемыми DefaultView свойство, которое имеет отношение к вашей заявке.

Однако, как упомянул от других , вы можете преобразовать DataView, выставленный свойством DefaultView, в DataTable и сохранить что .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...