c# - 如何从表中删除作为其他两个表相交结果的元素
问题描述
再会!我正在使用 SQL 做一个小型 WPF 程序。我有一个表 Zoo、表 Animal 和 ZooAnimal,它是其他 2 个表的组合。所以这个想法是,通过点击 Zoo 应该是关于位于特定 Zoo 中的动物的信息 + 一些其他功能。
我在实现“删除动物”按钮时遇到了问题。它应该从 ZooAnimal 表中删除选定的动物,但我不知道必须使用什么 SQL 代码来执行此操作。
我试过这样:
private void removeAnimal_Click(object sender, RoutedEventArgs e)
{
string query = "delete AnimalZoo Set ZooId = @ZooId where AnimalId = @AnimalId";
SqlCommand command = new SqlCommand(query, connection);
connection.Open();
command.Parameters.AddWithValue("@ZooId", listZoos.SelectedValue);
command.Parameters.AddWithValue("@AnimalId", listAssociatedAnimals.SelectedValue);
command.ExecuteScalar();
connection.Close();
showAssociatedAnimals();
}
我很乐意在这方面得到任何帮助。
这是 WPF UI 的外观:
数据库如下:
ZooAnimal 表定义:
CREATE TABLE [dbo].[ZooAnimal] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[ZooId] INT NOT NULL,
[AnimalId] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [AnimalFK] FOREIGN KEY ([AnimalId]) REFERENCES [dbo].[Animal] ([Id]) ON DELETE CASCADE,
CONSTRAINT [ZooFK] FOREIGN KEY ([ZooId]) REFERENCES [dbo].[Zoo] ([Id]) ON DELETE CASCADE
);
解决方案
string query = "delete from ZooAnimal where AnimalId = @AnimalId and ZooId = @ZooId";
推荐阅读
- go - 如何使用 go 将十六进制转换为 int
- python - 将 python 反汇编从 dis.dis 转换回 codeobject
- elasticsearch - 如何在 Elasticsearch 中找到具有更多匹配查询条件的文档?
- c# - 如何加快 C# 中的嵌套循环
- flutter - Flutter-关于在Cloud Firestore中创建聊天应用时的读取次数
- android - 如何将json对象解析为tablayout
- react-native - 世博+排毒+CircleCI
- html - 如何使用 Twig 获取 html 类名?
- android - Android Spinner 对ItemSelected 不起作用
- r - 如何将值分配给 is.na() 的输出?