2016-10-06 5 views
0

Здравствуйте, я хочу, чтобы удалить строку из моей таблицы, у меня есть 3 таблицы для рецепта, Ингредиент и я использую 3-й таблицу, чтобы объединить Рецепт и таблицу Ингредиента,DELETE строки - Sql C#

моего вопроса Я могу добавить строку, но я не знаю, как удалить строку. У меня действительно нет идеи, как это сделать.

код вниз плз помочь ^^»

private void btnAddToRecpie_Click(object sender, EventArgs e) 
    { 
     string query = "INSERT INTO RecpieIngredient VALUES (@RecpieId,@IngredientId)"; 

     using (connection = new SqlConnection(connectionString)) 
     using (SqlCommand cmnd = new SqlCommand(query, connection)) 
     { 
      connection.Open(); 
      cmnd.Parameters.AddWithValue("@RecpieId", lstRecpie.SelectedValue); 
      cmnd.Parameters.AddWithValue("@IngredientId",lstAllIngredient.SelectedValue); 
      cmnd.ExecuteScalar(); 
     } 
     PopulateRecpie(); 
    } 

    private void butToDelete_Click(object sender, EventArgs e) 
    { 
     string query = "DELETE FROM RecpieIngredient WHERE (@RecpieId , @IngredientId)[email protected] , @IngredientId "; 

     // a.Name FROM Ingredient a INNER JOIN RecpieIngredient x ON a.Id = x.IngredientId INNER JOIN Recpie m ON m.Id=x.RecpieId WHERE m.Id=" + index; 
     using (connection = new SqlConnection(connectionString)) 
     using (SqlCommand cmnd = new SqlCommand(query, connection)) 
     { 
      connection.Open(); 

      cmnd.Parameters.AddWithValue("@RecpieId", lstRecpie.SelectedValue); 
      cmnd.Parameters.AddWithValue("@IngredientId", lstAllIngredient.SelectedValue); 

      cmnd.ExecuteNonQuery(); 

     } 
     PopulateRecpie(); 
    } 
+1

Пожалуйста, поиск любого SQL учебник о том, как написать инструкцию DELETE – Steve

+0

, сначала узнайте из любого учебника, это сэкономит ваше время, а иногда и жизнь. –

ответ

2

Это:.

INSERT INTO RecpieIngredient VALUES (@RecpieId,@IngredientId) 

Это действительно стенография для:

INSERT INTO RecpieIngredient (RecpieId, IngredientId) VALUES (@RecpieId, @IngredientId) 

DELETE заявления не имеет такой сокращенный вариант, и требует, чтобы назвать имена столбцов в явном виде:

DELETE FROM RecpieIngredient WHERE RecpieId = @RecpieId AND IngredientId = @IngredientId 

Вы пришли довольно близко в фиксировании проблемы самостоятельно, хотя :)

+0

спасибо за информацию, и она работает ^^, но все же некоторые проблемы плохо пытаются исправить, –

0

Удаляется утверждение неверно Это должно быть

string query = "DELETE FROM RecpieIngredient 
         WHERE RecpieId = @RecpieId 
         AND IngredientId = @IngredientId";