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");
}
}
}
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");