2017-05-30 5 views
0

私はEntity FrameworkとC#を使用しています。自分のデータが入ったグリッドがあり、正しく動作します。私の目的は、ユーザーがグリッドをダブルクリックし、クリックしたレコードの詳細を含む別のフォームに入ることができるようにすることです。だから私はダブルクリックして、新しいフォームに私を連れて行く。データバインディングソースをEFデータに設定していますが、フォームにはデータが表示されません。フォームにデータをロードするコマンドがないとわかっています。ここでは、データを得るために、私のコマンドです:C#Entity Framework - フォームにデータをロードする

public Form2(int ID) 
{ 
    InitializeComponent(); 
    Entities CustomerContext = new Entities(entityConnectionStringBuilder.ToString()); 
    var customer = CustomerContext.Customers.First(a => a.id == ID); 
} 

私がチェックしているとVARの顧客はすべて正しいデータを持っていますが、私はフィールドにそれを得るように見えることはできません。画面に空白のデータがすべて表示されます。どんな助けでも大歓迎です。

+2

おそらく、ローカル変数にそのものを格納しているためですか?たぶん、あなたは新しいフォームのDataContextを指定しませんでしたか?たぶん...多くのメイベがあなたを助けてくれるでしょう –

+1

あなたは、顧客変数のすべてのフィルタリングされたデータを取得していますか?はいの場合スコープの問題がある可能性があります – Dileep

+0

@RandRandom私はDataContextを指定した行を追加しました。私が調査できる方向についての手がかりを私に与えることができれば、私はそれを高く評価します。 – Missy

答えて

0

私はそれを理解しました。 2つのアイテムがありました。まず、私のクエリのフォーマットは間違っていました、そして、私はクエリをバインディングソースにマップする必要がありました。魅力のように動作します。

public Form2(int ID) 
{ 
    InitializeComponent(); 
    Entities CustomerContext = new Entities(entityConnectionStringBuilder.ToString()); 
    var query = CustomerContext.Customers.Where(a => a.id == ID); 
    CustBindingSource1.DataSource = query.ToList(); 
} 
+1

完了したらCustomContextを破棄してConnectionをデータベースにリリースすることを検討する必要があります。 –

関連する問題