Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从其他两个表相交的表中删除元素_C#_Sql_Sql Server_Wpf_Winforms - Fatal编程技术网

C# 如何从其他两个表相交的表中删除元素

C# 如何从其他两个表相交的表中删除元素,c#,sql,sql-server,wpf,winforms,C#,Sql,Sql Server,Wpf,Winforms,你好!我正在用SQL做一个小的WPF程序。我有一个桌上动物园,桌上动物和ZooAnimal是其他两个桌子的组合。因此,我们的想法是,通过浏览动物园,应该了解位于特定动物园的动物的信息+其他一些功能 我在执行“移除动物”按钮时遇到问题。它应该从ZooAnimal表中删除一个选定的动物,但我不知道必须使用什么SQL代码来执行此操作 我试着这样做: private void removeAnimal_Click(object sender, RoutedEventArgs e) {

你好!我正在用SQL做一个小的WPF程序。我有一个桌上动物园,桌上动物和ZooAnimal是其他两个桌子的组合。因此,我们的想法是,通过浏览动物园,应该了解位于特定动物园的动物的信息+其他一些功能

我在执行“移除动物”按钮时遇到问题。它应该从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的外观:

数据库如下:

动物表定义:

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
))

删除AnimalZoo,其中AnimalId=@AnimalId和ZooId=@ZooId
另外,在c代码中,您可以调用ExecuteScalar来执行Delete语句。 所使用的SQL不提供要返回的字段(它不是查询),因此最好使用ExecuteOnQuery

command.ExecuteNonQuery();
享受吧