C# winforms排序数据集
是否可以将数据集ds的排序保存到XML文件中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");
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");