2009-04-28 3 views
2

Comment supprimer de deux tables à la fois en utilisant la même instruction delete dans ASP.Net?Supprimer de plusieurs tables ASP.NET

+0

Quelle base de données? –

+0

C'est une base de données MySQL. J'ai essayé le code mais je n'ai pas eu de chance. Je suis très nouveau à tout cela. Merci – xtrabits

Répondre

0

Si votre base de données est MsSql, vous pouvez combiner plusieurs instructions delete dans un seul SqlCommand.

Essayez ceci:

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(); 
} 

Ceci effacera tous les enregistrements de Table1 et table2 en un seul passage.

+0

Je vois que vous avez taggué la question avec vb.net. J'espère que vous pourrez réussir à traduire mon exemple de C# ... –

1

Je ne suis pas sûr de ce que vous voulez dire, mais si vous voulez supprimer d'une table en utilisant un autre des données de tables, cela peut être fait en utilisant le code suivant (SQL Server):

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

Si vous veulent exécuter deux instructions DELETE dans une commande, vous pouvez soit juste concaténer les en les séparant par un point-virgule:

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

vous pouvez également utiliser une procédure stockée:

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

juste concaténer supprimer des scripts SQL:

Using connection As New SqlConnection(connectionString) 
    Dim command As New 
     SqlCommand("DELETE FROM Table1 WHERE [email protected]; DELETE FROM Table2 WHERE [email protected];", connection) 

    command.Parameters.Add("@ID1", 1); 
    command.Parameters.Add("@ID2", 2); 

    command.Connection.Open() 
    command.ExecuteNonQuery() 
End Using