1

EntityFrameworkを使用して、2 つのテーブルで構成されるこの非常に単純なデータベース モデルがあります。

CustomerType : Id (PK), description  [Id integer]
Customer : Id(PK), CustType, name    [id,custtype are integers]

CustType は、CustomerType.Id を参照する外部キーです。

今フォームで、私は顧客にバインドされたそのデータグリッドビューを持っています. 最初のセルは、Customer.Name を入力するためのフリー テキストです。2 番目のセルは、CustomerType.description にバインドされたコンボ ボックス (theCellComboBox) で、考えられるすべての顧客タイプを表示します。

そのために、Customer エンティティをデータソース ウィンドウからドラッグ アンド ドロップして、bindingNavigator UI と datagridview が自動的に生成されるようにしました。最終的に、フォーム デザイナーに customerBindingSource、customerBindingNavigator、customerTypeBindingSource を追加しました。

私が追加した唯一のコードは、私がこれを持っているフォームのコンストラクターにあります:

public FCustomer()
{
  InitializeComponent();

  customerBindingSource.DataSource = context.Customers;
  customerBindingSource.AddingNew += new System.ComponentModel.AddingNewEventHandler(AddingNew);
  customerBindingSource.CurrentChanged += new System.EventHandler(CurrentChanged);

  customerDataGridView.AllowUserToAddRows = true;

  customerBindingNavigatorSaveItem.Click += new System.EventHandler(SaveItem_Click);
  customerBindingNavigatorSaveItem.Enabled = true;

  theCellComboBox.DataSource = context.CustomerTypes;
  theCellComboBox.ValueMember = "Id";
  theCellComboBox.DisplayMember = "description";
}

フォームを開いたときに最初に行うことは、ナビゲーターの「+」記号を押して、データグリッド ビューに新しいエントリを追加することです。I 行がデータグリッド ビューに挿入され、ドロップダウンに顧客の種類が表示されます。そのうちの 1 つを選択し、名前のセルをクリックします。

次のコマンドで即座にクラッシュします。

Exception   {"Object of type 'System.Int32' cannot be converted to type 'FMSW_CRM.CustomerType'."}  System.Exception {System.ArgumentException}

ここで何が間違っているのかわかりません。誰か指導してもらえますか?ありがとうございました

4

0 に答える 0