2009-07-23 12 views
4

次のコードでデータを挿入すると例外が表示されます。私は何をすべきか?LINQでSQLにデータを挿入中にエラーが発生しました

コード:

Movie_List_DBDataContext Movie_list1 = new Movie_List_DBDataContext(); 
Actor act = new Actor(); 

act.Actor_Name = Acttxt.Text; 

Movie_list1.Actors.InsertOnSubmit(act); 
Movie_list1.SubmitChanges(); 

例外:PRIMARY KEY制約 'PK_Actors' の

違反。オブジェクト 'dbo.Actors'に重複キーを挿入できません。

テーブルには2つの列があります。 IDと名前、IDは主キーです。

答えて

6

.dbmlデザイナーでは、IDフィールドに「自動生成値」とマークされていることを確認してください。フィールドのプロパティビューでこれを見つけることができます。

通常、これはデータベースのテーブルに従って初期化されるため、IDがデータベースに自動生成された値として設定されている場合、デザイナーは自動的に「自動生成値」をtrueに設定します。

また、コード内の希望のフィールドを「自動生成値」としてマークすることもできます。

背後に生成されたコードでIDプロパティを検索し、Column属性に値を設定します。IsDbGenerated=true

+0

私は、IDプロパティを検索してくださいどこ? –

+0

IDプロパティは、テーブルActor内のデザイナーに存在する必要があります。 –

3

アクターテーブルにIDフィールドをIDフィールドとして設定しましたか?あなたがしていない場合は、Googleまたはスタックのオーバーフローでクイック検索方法を表示されます。また、ID列のデザイナーファイルにautogenerateプロパティが設定されていることを確認してください。

1

IDが自動生成されると思われます。その場合は、デザイナのプロパティが適切に設定されていることを確認してください。これを行う最も簡単な方法は、列が正しく構成されたら、デザイナーからテーブルを削除してから追加することです。フィールド上のIDプロパティを取得し、レコードが追加されたときに挿入しようとしないように構成する必要があります。もちろん、IDをIDプロパティとしてテーブルに設定していない場合は、最初にIDを生成するか、IDを生成して挿入前に一意の値を割り当てる方法を見つけ出す必要があります。

関連する問題