2014-10-14 2 views
4

У меня возникли проблемы с вложением данных в таблицу. Я не знаю, что это модель базы данных или схема выглядит как причины я просто поиск и исправление ошибки в существующей программе, пока я не столкнуться с этой ошибкойC# таблица вставки, ошибка

MySql.Data.MySqlClient.MySqlException (0x80004005): Cannot add or update a child row: a foreign key constraint fails (`my_database`.`movies_class`, CONSTRAINT `fk_movies_class_movies1` FOREIGN KEY (`movie_id`) REFERENCES `movies_notworking` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) 

at MySql.Data.MySqlClient.MySqlStream.ReadPacket() 

at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) 

at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId) 

at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) 

at MySql.Data.MySqlClient.MySqlDataReader.NextResult() 

at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) 

at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() 

и вот мой код

public void tabinsertcheck(MySqlConnection myconn, DataGridView dgv, int intid) 
    { 
     for (int i = 0; i < dgv.Rows.Count; i++) 
     { 
      if (dgv[0, i].Value != null) 
      { 
       if ((bool)dgv[0, i].Value) 
       { 
        StringBuilder sqry = new StringBuilder(); 
        sqry.Append("select max(id) from movies_class"); 
        MySqlCommand cmd = new MySqlCommand(sqry.ToString(), myconn); 
        int max_id = Convert.ToInt32(cmd.ExecuteScalar())+1; 
        sqry = new StringBuilder(); 
        sqry.Append(String.Format("insert into movies_class values({0},{1},{2})", 
         max_id,intid, dgv[3, i].Value.ToString())); 

        if (myconn.State == ConnectionState.Closed) 
         myconn.Open(); 
        cmd = new MySqlCommand(sqry.ToString(), myconn); 
        cmd.ExecuteNonQuery(); 
        cmd.Dispose(); 
        myconn.Close(); 
       } 
      } 

     } 
    } 

Я использую цикл, потому что у меня есть много флажка для каждого флажка, который он хранит в базе данных, и я не знаю, как его исправить. Заранее спасибо

ответ

5

Вы пытаетесь вставить строку в таблицу movies_class со значением для movie_id поля, которое не существует в Id поле movies_notworking таблицы. Проверьте свои данные и убедитесь, что вы вставляете правильные значения для ссылочных полей в таблице.

+0

+1 для точной информации – CodeSlayer

+0

извините, я не могу проголосовать за вас, мне нужно 15 реп., Но я принимаю ваш ответ. спасибо – Wielder

+0

Без проблем, Добро пожаловать :) –

Смежные вопросы