C# 以正确的顺序获取数据集子行
我已经用两个表之间的1:N关系类型化了dataset。 子表有“Order”列,在将数据加载到数据集时,我在SP中使用该列进行排序(ordery by)。据我所知,在使用dataset时不能保证此顺序。 我需要父行的GetChildRows,并确保这些行按照order列中定义的特定顺序排列。 现在我做以下几点:C# 以正确的顺序获取数据集子行,c#,.net,dataset,C#,.net,Dataset,我已经用两个表之间的1:N关系类型化了dataset。 子表有“Order”列,在将数据加载到数据集时,我在SP中使用该列进行排序(ordery by)。据我所知,在使用dataset时不能保证此顺序。 我需要父行的GetChildRows,并确保这些行按照order列中定义的特定顺序排列。 现在我做以下几点: class Program { static void Main(string[] args) { DataSet1 ds = new DataSet1(
class Program
{
static void Main(string[] args)
{
DataSet1 ds = new DataSet1();
//load data
DataSet1.ParentTableRow parentRow = ds.ParentTable.FindByID(1);
DataSet1.ChildTableRow[] childRows = parentRow.GetChildTableRows();
Array.Sort<DataSet1.ChildTableRow>(childRows, new ChildTableCoparer());
//Enumerate fields is right order
}
}
public class ChildTableCoparer : IComparer<DataSet1.ChildTableRow>
{
public int Compare(DataSet1.ChildTableRow x, DataSet1.ChildTableRow y)
{
if (x.Order > y.Order) return 1;
if (x.Order < y.Order) return -1;
return 0;
}
}
类程序
{
静态void Main(字符串[]参数)
{
DataSet1 ds=新的DataSet1();
//加载数据
DataSet1.ParentTableRow parentRow=ds.ParentTable.FindByID(1);
DataSet1.ChildTableRow[]childRows=parentRow.GetChildTableRows();
Sort(childRows,new ChildTableCoparer());
//枚举字段的顺序正确
}
}
公共类儿童合作伙伴:IComparer
{
公共整数比较(DataSet1.ChildTableRow x,DataSet1.ChildTableRow y)
{
如果(x订单>y订单)返回1;
如果(x.Order
在使用GetChildRows()时,有没有更好的方法来确保顺序?在从子表中选择行之前,可以尝试对其进行排序。这样,当您从数组中选择行时,它将被预先排序 例如:
DataSet1 ds = new DataSet1();
//load data
DataSet1.ChildTable.SortExpression = "Order";
DataSet1.ParentTableRow parentRow = ds.ParentTable.FindByID(1);
DataSet1.ChildTableRow[] childRows = parentRow.GetChildTableRows();
Array.Sort<DataSet1.ChildTableRow>(childRows, new ChildTableCoparer());
//Enumerate fields is right order
dataset1ds=newdataset1();
//加载数据
DataSet1.ChildTable.SortExpression=“订单”;
DataSet1.ParentTableRow parentRow=ds.ParentTable.FindByID(1);
DataSet1.ChildTableRow[]childRows=parentRow.GetChildTableRows();
Sort(childRows,new ChildTableCoparer());
//枚举字段的顺序正确
或者,您也可以编写一个LINQ表达式来对结果数组进行排序