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}
ここで何が間違っているのかわかりません。誰か指導してもらえますか?ありがとうございました