Avatar billede kpjensendk Nybegynder
27. marts 2009 - 20:48 Der er 5 kommentarer

sletning fra flere databaser samtidig ?

Goddag jeg har et problem ved et forum, hvor man skal kunne slette en kategori og hvis der ligger tråde og poster inde i den, så skal det hele blive slettet samtidig...

jeg har skrevet min sql sætning men den kommer med fejl. i for her koden og problemet så håber i vil og kan hjælpe.


Kode:

SqlConnection conn = new SqlConnection();
        conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = "DELETE FROM Poster WHERE Poster.fk_tradeID = Trade.id and Trade.fk_kategorierID = Kategorier.id and Kategorier.id = @id";
        cmd.CommandText = "DELETE FROM Trade WHERE Trade.fk_kategorierID = Kategorier.id and Kategorier.id = @id";
        cmd.CommandText = "DELETE FROM Kategorier WHERE Kategorier.id = @id";
        cmd.Parameters.Add(new SqlParameter("@id", e.CommandName));

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
        Response.Redirect("bruger.aspx");



Min fejl der kommer ser sådan ud:

The DELETE statement conflicted with the REFERENCE constraint "FK_Trade_Kategorier". The conflict occurred in database "C:\USERS\KENNETH P. JENSEN\DESKTOP\FORUM OPGAVE\FORUM 2008\APP_DATA\DATABASE.MDF", table "dbo.Trade", column 'fk_kategorierID'.
The statement has been terminated.


Den skriver noget med fk_trade_kategorier men syntes jeg ikke jeg har skrevet noget som helt da jeg ikke har noget som hedder dette.
Avatar billede arne_v Ekspert
27. marts 2009 - 20:54 #1
Fejlen ligner meget at den brokker sig over at du forsoeger at slette nogle raekker i en tabel selvom raekker i en anden tabel referer til dem (referentiel integritet).
Avatar billede arne_v Ekspert
27. marts 2009 - 20:55 #2
Men jeg forstaar ikke helt dine DELETE saetninger. Du bruger andre tabeller i WHERE.
Avatar billede kpjensendk Nybegynder
27. marts 2009 - 20:57 #3
Det er for jeg de alle linker sammen... så i kategorien ligger der nogen tråde og i tråde ligger der nogen poster.
Avatar billede arne_v Ekspert
28. marts 2009 - 03:41 #4
Jeg tror ikke at det er valid SQL.
Avatar billede aaberg Nybegynder
30. marts 2009 - 10:23 #5
Noget helt andet er, at du sætter cmd.CommandText 3 gange efter hinanden! På denne måde vil det kun være den sidste delete-sætning der bliver kørt, da du jo overskriver de andre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester