2017-03-06 12 views
-1

Visual StudioとMySQLを使用する。私はIDとジャンルの2つの列を含むテーブルのジャンルを持っています。別のテーブルに挿入するCombobox値メンバー

私は

  1. データソースとVisual Studioでコンボボックスを作成しました:ジャンルテーブル
  2. 表示Member-ジャンル(列)
  3. 値の残り火 - ID(列)

表示されたメンバーのID(おそらくバリューメンバー)を受け取り、別のテーブルに挿入したいと考えています。私はテキストボックスに値メンバーを挿入するために、次のコードを使用すると値がそれを文字列として「ID」を示し

textBox3.Text = comboBox1.ValueMember.ToString(); 

正しいかどうかだけ確認してください。

Iは同様にIDとして選択された値を用いた問題を回避し、次のコードを試してみた:

textBox2.Text = comboBox1.SelectedIndex.ToString(); 

      int anInteger; 
      anInteger = Convert.ToInt16(textBox2.Text); 
      anInteger = int.Parse(textBox2.Text); 
      int i = anInteger + 1; 

Iは、他のテーブルにIDを追加するために使用するコードは

SqlCommand xp4 = new SqlCommand("Insert into BookGenre(Genre_Id, Books_Id) Values (@textBox1, @newId2)", test); 
      xp4.Parameters.Add("@textBox1", SqlDbType.Int).Value = i; 
      xp4.Parameters.Add("@newId2", SqlDbType.Int).Value = newId2; 
      test.Open(); 
      xp4.ExecuteNonQuery(); 
      test.Close(); 
であります

しかし、プログラムを実行しようとするとエラーが発生します:

Additional information: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_BookGenre_Genre". The conflict occurred in database "BookStoreBiggest", table "dbo.Genre", column 'ID'.

+0

実際の問題は、テーブルの関係を理解することです。コンボボックスではありません – efekctive

答えて

0

BookGenreを挿入する前に、まずそれらをテーブルのジャンルにセトリングします。 (2つの値の関係は値と一致する必要があります)これがFOREIGN KEY制約に必要なものです。

+0

ジャンルテーブルには行があります。テーブルに何も追加せずにこれらの行を使用したいと思います。選択したジャンルのIDを取得してBookGenreに追加することはできますか? – Remdore

+0

外部キーがテーブルGenreの別の列を参照しています。 SQLに移動して、テーブル「BookGenre」内のその外部キーを削除し、他のテーブル「Genre」に一致する値を使用せずにそのテーブルに追加できるようにする必要があります。 – TheChief

+0

BookGenreへの外部キー後でビューを作成するためにこれを使用しますか? – Remdore

関連する問題