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 に答える