2012-01-18 40 views
1

私は、カスタムビジネスオブジェクトのBindingList<T>にDeckID、Name、UserID、Size、およびNotesフィールドをバインドしたDataGridViewを持っています。外部キーを使用したDataGridView BindingDataSource

これはIDataReaderオブジェクトを介して、MSSQLデータベースから呼び出されています。さて、私の問題は、UserIDは、私のデータベースでは、Usernameフィールドを持つSystemUserというテーブルへの外部キーである整数です。
私がしたいことは、自分のデータベースのSystemUserテーブルからUsernameを取得し、それをUserIDに基づいて表示し、その名前を表示することです。これはGridViewを使用してWebFormsで非常に簡単でしたが、WindowsFormsアプリではそれほど多くありませんでした。

+0

あなたはあなたがそれらのテーブルを結合するカスタムクエリを書くことができ –

+0

プラットフォームタグ(シルバー、asp.net、リサイズなど)を追加する必要があります。 – pistipanko

+0

真ですが、SQLからの特定のクエリと、そのクラスのデータプロバイダとコントローラを保持する新しいクラスを作成する必要があります。私はそれがWebフォームでこれを行うことが可能であることを知っているので、私はそれがWindowsフォームで実行可能でなければならないことは確かです。私の考えでは、これはかなり一般的なものでなければなりません... – Jack

答えて

0

私はあなたが探しているものを見ていると思います。 DataGridViewインスタンスから、onSelectionChangeなどのイベントを使用して選択した項目を取得します。次の使用:

var selectedItem = datagridviewinstance.SelectedRows[x].DataBoundItem as YourTypeHere 
var data = (from a in SOMETHING where fk == selectedItem.ForeignKeyProperty select a); 
textbox1.Text = data.text; 

今、あなたはあなたが望むものは何でもGUIオブジェクトの外部キーオブジェクトや更新を取得するために、あなたの次のデータベース呼び出しを行うことができます。がんばろう!

+0

申し訳ありません、私はこれまでC言語での作業を行ってきました。... VB.NETはまったく分かりません。 ...しかし、私はGridViewからデータバインドされたオブジェクトを取得する方法をノー。私は、DataGridViewに外部テーブルのデータを自動的に選択させる方法を理解していません。 – Jack

+0

最初にデータを取得するためにDTOを変更しない場合は、2回目のデータベース呼び出しを行う必要があります。 「選択変更」にイベントを挿入する。外部キーを使用してデータベース呼び出しをセットアップします。選択を変更すると、データグリッドは外部キーデータを "自動的に選択"します。 – user959729

+0

申し訳ありませんが、誰もが、MSDNにいくつかの記事の後、彼らはここに戻ってStackOverflowの上の記事に私をリンクし、その溶液はここにある:http://stackoverflow.com/questions/3758757/c-sharp-datagridviewcomboboxcolumn-binding-problem – Jack

関連する問題