1
var results = from myRow in dsPac.AsEnumerable()
              where myRow.Field<string>("Package_Name").Equals(lblPackageName.Text)
              select myRow;

dsPac包含_

在此处输入图像描述

我想选择与Package1712200466ie对应的数据

在此处输入图像描述

当我绑定到 GridView 时,出现以下错误

DataBinding: 'System.Data.DataRow' does not contain a property
with the name 'Holiday_ID'.
4

2 回答 2

5

过去,当我希望将数据行绑定到 GridView 中时,我会创建一个对象来执行此操作。在这种情况下,您可能会使用 Linq 查询来创建一个匿名对象来解决问题。

 var results = from myRow in dsPac.AsEnumerable()
               where myRow.Field<string>("Package_Name").Equals(lblPackageName.Text)
               select new { Holiday_ID = myRow["Holiday_ID"],
                            Holiday_Description = myRow["Holiday_Description"],
                            Holiday_Date = myRow["Holiday_Date"] };

我不相信直接竞标该行会起作用-请参阅异常文本。通过 Item[] 索引器访问行列,因此您需要编写一个 WPF 转换器来实现相同的效果。总之,这是浪费时间,因为 Linq 查询会起作用。

于 2013-03-16T15:31:34.040 回答
3

或者,您可以使用AsDataView()将行集合转换回 GridView 将能够绑定到的 DataView。

var results = (from myRow in dsPac.AsEnumerable()
              where myRow.Field<string>("Package_Name").Equals(lblPackageName.Text)
              select myRow).AsDataView();
于 2013-03-16T15:47:47.237 回答