var results = from myRow in dsPac.AsEnumerable()
where myRow.Field<string>("Package_Name").Equals(lblPackageName.Text)
select myRow;
dsPac
包含
我想选择与Package1712200466
相对应的数据,即
当我绑定到GridView时,我收到以下错误
DataBinding: 'System.Data.DataRow' does not contain a property
with the name 'Holiday_ID'.
答案 0 :(得分: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查询将起作用。
答案 1 :(得分:3)
或者,您可以使用AsDataView()将行集合转换回GridView将能够绑定到的DataView。
var results = (from myRow in dsPac.AsEnumerable()
where myRow.Field<string>("Package_Name").Equals(lblPackageName.Text)
select myRow).AsDataView();