Asp.net 如何使用;“强类型数据表”;(或“行”)在WebForms代码隐藏中?

Asp.net 如何使用;“强类型数据表”;(或“行”)在WebForms代码隐藏中?,asp.net,webforms,strongly-typed-dataset,Asp.net,Webforms,Strongly Typed Dataset,我们的asp.net WebForms应用程序正在为“强类型数据表”和数据行使用表适配器。在后面的代码中,我发现我无法直接从BLL类实例(例如我们的“Main_TblAdap.CostDataTable”)使用返回值,因为它引用了其中的强类型数据行和列/字段 在代码隐藏事件和方法中,使用强类型数据表或数据行的正确方法是什么 此外,我们希望能够引用特定的数据行或对数据表进行排序/筛选 一个好的编码示例将非常有助于展示以下最佳方法:(1)从强类型数据表中获取数据,以引用数据表中特定数据行中的值;(2

我们的asp.net WebForms应用程序正在为“强类型数据表”和数据行使用表适配器。在后面的代码中,我发现我无法直接从BLL类实例(例如我们的“Main_TblAdap.CostDataTable”)使用返回值,因为它引用了其中的强类型数据行和列/字段

在代码隐藏事件和方法中,使用强类型数据表或数据行的正确方法是什么

此外,我们希望能够引用特定的数据行或对数据表进行排序/筛选


一个好的编码示例将非常有助于展示以下最佳方法:(1)从强类型数据表中获取数据,以引用数据表中特定数据行中的值;(2)如何对强类型数据表进行排序/筛选。

首先从该表创建数据视图。您可以在初始化时自定义视图,也可以调用get default

DataView dv = yourTable.DefaultView;
或者在创建引用指针时,继续从表中筛选视图,如下所示:

DataView custDV = new DataView(YourTable[yourTableName], 
"VehicleID = 'xxx'", // Row filter
"VehicleID", // Sort
DataViewRowState.CurrentRows);
现在可以按行状态对视图进行排序和筛选

dv.Sort();
view.RowStateFilter = DataViewRowState.Added | 
    DataViewRowState.ModifiedCurrent;
排。 您可以在DataView中与DataRowView IEnumerable交互

 foreach (DataRowView rowView in thisDataView)
 {
   // your code here
 }

要查找表中的行,请尝试:

var result = dt.AsEnumerable().Select(r => r["Id"] = 4);

    if(result !=null)
    {
        int x = 0;
    }

现在只需绑定到视图,如果添加或更新行,视图也会更新

谢谢你的回复。谢谢你的回复。然而,我没有看到变量和示例之间的关系。例如:对于排序,什么是“视图”;是“dv”吗?如果不是,什么是“视图”?我不确定过滤或排序的是什么?如果我想按“VehicleID=555”进行过滤,该怎么办?此外,在“//your code here”中,字段的强类型是否与“r.InitalDate”中的强类型相同?字段是如何引用的?在最后一个示例中,“dt”是什么强类型表“yourTable”?或者是什么?谢谢。您正在使用表创建指针dv:DataView dv=yourTable.DefaultView;一旦有了dv引用,就可以使用dv.Sort()与它交互进行排序;它有一些重载。您还可以更新数据表行,视图将反映这一点。再次感谢您的回复。你已经澄清了我之前的一些问题。我剩下的一个问题是:在示例的ROWS部分中,如何在循环中引用“rowView”或“r”变量的特定字段?我这样做是为了确定是否可以从行变量中引用字段“VehicleYear”,例如if(rowView.VehicleYear<2000){…}(这意味着强类型)。或者我必须将其引用为rowView[“VehicleYear”]?提前感谢。如果(rowView.VehicleYear<2000){…}您正在为这些特定的匹配绑定或执行和操作,结果会是什么?
var result = dt.AsEnumerable().Select(r => r["Id"] = 4);

    if(result !=null)
    {
        int x = 0;
    }