#c# #mysql
#c# #mysql
Вопрос:
Здравствуйте, я хочу удалить строку из своей таблицы, у меня есть 3 таблицы для рецептов, ингредиентов, и я использую 3-ю таблицу для объединения таблиц рецептов и ингредиентов,
мой вопрос Я могу добавить строку, но я не знаю, как удалить строку, я действительно понятия не имею, как это сделать.
пожалуйста, помогите с кодом ^^»
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)=@RecpieId , @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 о том, как написать оператор УДАЛЕНИЯ
2. сначала изучите любой учебник, это сэкономит ваше время, а иногда и жизнь.
Ответ №1:
Это:
INSERT INTO RecpieIngredient VALUES (@RecpieId,@IngredientId)
На самом деле это сокращение для:
INSERT INTO RecpieIngredient (RecpieId, IngredientId) VALUES (@RecpieId, @IngredientId)
DELETE
Оператор не имеет такого сокращенного варианта и требует, чтобы вы явно указывали имена столбцов:
DELETE FROM RecpieIngredient WHERE RecpieId = @RecpieId AND IngredientId = @IngredientId
Вы подошли довольно близко к решению проблемы самостоятельно, хотя 🙂
Комментарии:
1. спасибо за информацию, и это работает ^^, но все еще есть некоторые проблемы, которые я попытаюсь исправить ,
Ответ №2:
Вы удаляете неправильное утверждение. Это должно быть
string query = "DELETE FROM RecpieIngredient
WHERE RecpieId = @RecpieId
AND IngredientId = @IngredientId";