1

私の C# アプリケーションでは、NHibernate を使用してデータベース テーブル 'room' からすべての部屋を取得しています。

using (ISession pSession = NHibernateHelper.OpenSession())
            {
                IList<Room> roomList = pSession.QueryOver<Room>().
                                                Where(x => x.FloorID == 3).
                                                .List();
            }

テーブル「部屋」と私のマッピング クラス (Room.cs) には、次のプロパティが含まれています。

roomID
hash
date
identifier

データベースからテーブル エントリを表示する DataGridView があります。コードは次のとおりです。

 roomDataGridView.DataSource = roomList;

これまでのところうまくいきます。しかし、今は Room クラスのすべてのプロパティを表示するのではなく、表示したいだけだと判断しました。

roomID
identifier

私は次のことを試しました:

roomDataGridView.DataSource = listOfRoomPropertiesForCurrentFloor.Select(x => new {x.Identifier, x.RoomID });

残念ながら、これは機能しません...私のDataGridViewには何も印刷されません。

質問: ルーム テーブルのすべてのプロパティを自分のルーム モデルに保存し、DataGridView の 4 つのプロパティのうち 2 つだけを表示するにはどうすればよいですか?

4

2 に答える 2

2

列名がDataGridViewで定義されていることを確認してオブジェクトを作成し、基本的にx.Identifierを「Identifier」という名前に割り当てて、それを取得してToList()関数を呼び出すことができるようにします

roomDataGridView.DataSource = listOfRoomPropertiesForCurrentFloor
                              .Select(x => new {Identifier = x.Identifier, RoomID = x.RoomID }).ToList();
于 2012-12-04T13:43:30.410 に答える
1

DataGridView 属性AutoCreateColumnsを true に設定する必要があります。すでに答えがあります:

エキス:

表示してはいけないプロパティを属性でマークする[Browsable(false)]

于 2012-12-04T14:08:22.820 に答える