【问题标题】:Delete from multiple tables ASP.NET从多个表中删除 ASP.NET
【发布时间】:2010-10-22 05:47:41
【问题描述】:

如何在 ASP.Net 中使用相同的 delete 语句一次从两个表中删除?

【问题讨论】:

  • 这是一个 MySQL 数据库。我确实尝试了代码,但我没有任何运气。我对这一切都很陌生。谢谢

标签: asp.net sql vb.net ado.net


【解决方案1】:

如果您的数据库是 MsSql,您可以在一个 SqlCommand 中组合多个删除语句。

试试这个:

string deleteQuery = "DELETE FROM Table1; DELETE FROM Table2;";
using (SqlConnection connection = new SqlConnection(connectionstring))
using (SqlCommand deleteCommand = new SqlCommand(deleteQuery, connection))
{
    connection.Open();
    deleteCommand.ExecuteNonQuery();
}

这将一次性删除 table1 和 table2 中的所有记录。

【讨论】:

  • 我看到你用 vb.net 标记了这个问题。希望您能设法从 C# 翻译我的示例...
【解决方案2】:

我不确定你的意思,但是如果你想使用另一个表的数据从一个表中删除,这可以使用以下 sn-p (SQL Server) 来完成:

DELETE x
FROM TableX x INNER JOIN TableY y
   ON x.SomeID = y.SomeID
WHERE ...

如果你想在一个命令中执行两个 DELETE 语句,你可以将它们连接起来,用分号隔开:

DELETE TableX WHERE SomeID = ...; DELETE TableY WHERE SomeID = ...

你也可以使用存储过程:

CREATE PROCEDURE DeleteTwoTables
   @ParamX int,
   @ParamY int
AS
   DELETE TableX WHERE SomeID = @ParamX
   DELETE TableY WHERE SomeID = @ParamY

【讨论】:

    【解决方案3】:

    只需连接删除 sql 脚本:

    Using connection As New SqlConnection(connectionString)
        Dim command As New 
           SqlCommand("DELETE FROM Table1 WHERE ID1=@ID1; DELETE FROM Table2 WHERE ID2=@ID2;", connection)
    
        command.Parameters.Add("@ID1", 1);
        command.Parameters.Add("@ID2", 2);
    
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多