2017-08-03 13 views
1

私の最終的な目標は、代わりに人名を取得するには、プルテーブルの外部キーIDを置き換えることです。それを助けてくれれば嬉しいです。私はEF6コンテキストDbSetをDataGridViewのバインディングソースとして使用しています。DataGridView列には設定された値が表示されません。彼らはGUIの中に空白で表示されます

GUI全体が十分にクリーンではありませんが、テーブル全体がプルされます。だから、Id列と他のものを削除します。次に、Person Nameという名前の新しい列を追加します。

文字通り、すべてが完全に私がそれを必要とするように完全に働いています。 DGV細胞に人名の値を表示していないだけです。

using (var ctx = new myDbContext()) 
{ 
    BindingSource bSrc = new BindingSource(); 
    bSrc.DataSource = ctx.myDbSet.ToList(); 
    myDataGridView.DataSource = bSrc; 
    myDataGridView.Refresh(); 
} 
myDataGridView.Columns.Add("originalPerson", "Person Name"); 

myDataGridView.AutoGenerateColumns = false; 

myDataGridView.Columns.Remove("Id"); 
myDataGridView.Columns.Remove("DateModified"); 
myDataGridView.Columns.Remove("DateCreated"); 

using (var ctx = new myDbContext()) 
{ 
    foreach (DataGridViewRow r in myDataGridView.Rows) 
    { 

     int pId= (Int32)r.Cells[0].Value; 
     string name = ctx.personsTable.FirstOrDefault(p => p.Id == pId).name; 
//Where I set the values. 
     r.Cells[myDataGridView.Columns.Count - 1].Value = name.ToUpper(); 
    } 
} 

myDataGridView.Columns.Remove("personsTableId"); 

if (myDataGridView!= null) 
{ 
    myDataGridView.Columns[myDataGridView.ColumnCount - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
} 

誰もが、私はそれを私は、これは厄介な速いを得たように私が感じるすべての耳をしています別の方法を行う必要があります考えている場合。前もって感謝します!私は先に進み、私が持っていたすべてを示しました。

+0

コード設定ブレークポイントをステップ実行することで問題を突き止めることができますか? – MethodMan

+0

私はプログラムを踏んだときに値を正しく設定し、名前を右のセルに入れます。 GUIは、そこに何もなかったように、私の最も遠い/新しい列にちょうど現れる。再描画やリフレッシュを行わずにDGVに値を追加することと何か関係があるように感じますが、更新/リフレッシュは機能しません。 – Byrd

+0

あなたはあなたが投稿したすべてのコードをどんな出来事ですか? – MethodMan

答えて

0

私は昨日同様の質問に答えて、私はあなたのための同じ溶液を示唆している。また

Binding a value from a parent table into a DataGridView's text box using the foreign key

を - 代わりに、列のあなたはしたくないを削除するので、私はそれらをVisible = false隠すことをお勧めします。あなたがそれらの値/列を後で必要に応じて参照することができます。

+0

それは私の問題を解決しませんでした。しかし、それは私にもっと良いアイデアを与えました。私はBindingSourceを放棄したので、それはそのくそのようなものを引き起こしていました。私は現在、DbContext.table.ToList()を繰り返し実行しています。すべて手動で追加します。それははるかにきれいで、以前私が何を考えているのか分かりません...私はBindingSourceの使い方をとても邪魔していました。 – Byrd

関連する問題