【发布时间】:2018-04-01 15:43:44
【问题描述】:
我正在将一些 xml 文件读入数据集,对数据表进行排序并在另一个数据集中为每一行(如果不存在)生成一个新数据表。
foreach (FileInfo f in files)
{
if (f.Name.StartsWith("ID_" + lbl_ID.Text))
{
dsDatei.Reset();
dsDatei.ReadXml(Application.StartupPath + f.Name);
DataTable dtSort = dsDatei.Tables[0].Clone();
dtSort.Columns[1].DataType = typeof(Int32);
foreach (DataRow dr in dsDatei.Tables[0].Rows)
{
dtSort.ImportRow(dr);
}
dtSort.DefaultView.Sort = "Number";
dsDatei.Tables.RemoveAt(0);
dsDatei.Tables.Add(dtSort.DefaultView.ToTable());
...some code
foreach (DataRow dr in dsDatei.Tables[0].Rows)
{
if (!dsAusdruck.Tables.Contains(dr[1].ToString()))
{
dsAusdruck.Tables.Add(dr[1].ToString());
dsAusdruck.Tables[dr[1].ToString()].Columns.Add("Position");
...add more columns
}
...some code
}
}
}
我的问题是,例如在第一个 xml 文件中缺少数字 144,在第二个 xml 文件中存在数字 144,并且在数据集的末尾创建了名称为 144 的数据表。
稍后我使用数据集创建一个 pdf 文件,为每个数据表创建一个新页面。所以我在最后一页得到了数字 144,而不是在数字 143 和 145 的页面之间。
那么如何对数据集中的数据表进行排序呢?
谢谢
答案 PinBack 的结果
【问题讨论】:
-
在创建 pdf 之前,您可以创建一个包含可用表格的列表并对其进行排序。然后使用排序列表创建pdf
-
有很多方法可以实现这一点。你试过linq吗?
dataSet.Tables.Cast<DataTable>().Sort()或者您可以遍历表格并删除错误索引处的表格。到目前为止,您尝试过什么?
标签: c# sorting datatable dataset