C#数据视图排序过滤器

C#数据视图排序过滤器,c#,dataview,C#,Dataview,我正在尝试按“PartNum ASC,OrderNum ASC”对数据视图进行排序 然后,我对数据视图中的一列应用一个名为“Difference”的计算,这是每行上两列之间的差值“Reserved-PickingDemand” 计算完“差异”后,我需要按“差异”列对数据视图进行排序 我的代码如下(简化): gridDataView.dataView.Sort=“FulfillmentPicking.PartNum ASC,FulfillmentPicking.OrderNum ASC”; for

我正在尝试按“PartNum ASC,OrderNum ASC”对数据视图进行排序

然后,我对数据视图中的一列应用一个名为“Difference”的计算,这是每行上两列之间的差值“Reserved-PickingDemand”

计算完“差异”后,我需要按“差异”列对数据视图进行排序

我的代码如下(简化):

gridDataView.dataView.Sort=“FulfillmentPicking.PartNum ASC,FulfillmentPicking.OrderNum ASC”;
for(int i=0;i
第二个“排序”导致引发异常。异常仅表示程序已停止响应,然后程序重新启动


是否可以在DataView上使用2种排序?

gridDataView是什么类型的对象?它是一个“DataView”对象。您需要找出引发的异常。我知道知道引发的异常在调试此问题时非常有用。撇开例外情况不谈,我正在研究理论。是否可以在DataView上使用两种单独的排序方法?我假设使用2种排序会导致异常和程序崩溃。这是可能的,在最简单的情况下,它可以正常工作<代码>变量表=新数据表();表.列.添加(“A”,类型(int));表.列.加上(“B”,类型(int));表.列.添加(“Dif”,类型(int));table.Rows.Add(1,0,0);var dataView=新数据视图(表);dataView.Sort=“A ASC,B ASC”;对于(inti=0;i
gridDataView.dataView.Sort = "FulfillmentPicking.PartNum ASC, FulfillmentPicking.OrderNum ASC";

for (int i = 0; i < gridDataView.dataView.Count; i++){
gridDataView.dataView[i]["FulfillmentPicking.Difference"] = Convert.ToInt32(gridDataView.dataView[i]["FulfillmentPicking.Reserved"]) - Convert.ToInt32(gridDataView.dataView[i]["FulfillmentPicking.PickingDemand"]);
}

gridDataView.dataView.Sort = "FulfillmentPicking.Difference ASC";