0

データベースに2つのテーブルがDepartmentありますFaculty 。WinFormアプリケーションの部門リストのdatagridviewにデータを入力しています。私のテーブルは両方とも次のとおりです

デパートメント

  1. Sno(int)
  2. 名前(varchar(max))
  3. ステータス(ビット)
  4. Faculty_id(int)

学部

  1. Sno(int)
  2. 名前
  3. 状態

今度はコードに来て、datagridviewをフォームにドラッグアンドドロップして、コードビハインドファイルに移動します。私のフォームのloadメソッドでは、次のコードを記述します

        var main = new SRMEntities();
        var departs = main.Department.ToList();
        DepartmentGrid.DataSource = departs;

フォームをロードすると、次のように表示されます 部門グリッド

何も表示されていない学部の列を見てください。部門を作成するときに、学部IDを部門に保存します。ここに学部名を表示したいです。

ご不明な点がございましたらお知らせください。

前もって感謝します

編集

私のデータベース図

データベース

4

3 に答える 3

2

正しい結合は次のとおりです。

var main = new SRMEntities();
var query = from f in main.Faculty
            join d in main.Department on f.Sno equals d.Faculty.Sno
            select new { d.Sno, d.Name, d.Status, Faculty = f.Name };

DepartmentGrid.DataSource = query.ToList();
于 2013-02-01T07:30:35.833 に答える
1

すべてがクエリに依存しています............クエリには、Joinを含む両方のテーブルが含まれている必要があります。

var main = new SRMEntities();
var departs = main.Department.ToList();
DepartmentGrid.DataSource = departs;

上記のコード「main.Department.ToList();」を確認してください。部門のみを返し、グリッドに「出発」を割り当てます。

「 main.Department 「Faculty」テーブル情報が含まれているかどうか。

あなたのコードを見ると、あなたは以下のような別のアイテムを持っていると思います

1.main.Department
2.main.Faculty
于 2013-02-01T07:27:40.477 に答える
0

テーブルを結合する必要があります

何かのようなもの:

var main = new SRMEntities();

    var source = (from d in main.Department
                 join f in main.Faculty on d.Faculty.Sno=f.Sno
                 select new
                 {
                  Sno = d.Sno ,
                  Name = d.Name,
                  Status = d.Status, 
                  Faculty = f.Name
                 }
                 );   

    DepartmentGrid.DataSource = source.ToList();

よろしく

于 2013-02-01T07:04:28.267 に答える