Avatar billede raven_ Nybegynder
25. oktober 2004 - 21:29 Der er 4 kommentarer

Delete rækker i en tabek med relationer

Hej derude.

Jeg har nogle problemer med at slette rækker i en tabel, der består af en sammensatnøgle.

Tabellen er som følger:
<ArrKategori>
- FK: Kategori
- FK: ArrangementID

eks:
Dans  - 2
Musik  - 1
Teater - 3

Det jeg gerne vil er f.eks. at slette række hvor ArrangementID= 2 og 1.

---------------- Jeg har følgende kode------------
DbConnection Conn = new DbConnection();

            OleDbConnection myConn        = Conn.getConnection();           
            myConn.Open();
                           
            string    SqlQuery    = "SELECT * FROM ArrKategori";
                       
            // DataAdapters for operations
            OleDbDataAdapter MyDataAdapter                = new OleDbDataAdapter(SqlQuery, myConn);
                           
            // CommandBuilders to build Sql commands
            OleDbCommandBuilder CommandBuilder            = new OleDbCommandBuilder(MyDataAdapter);

            // DataSet contains data from Arrangor
            DataSet MyDataSet = new DataSet();               

            // Fill DataSets
            MyDataAdapter.Fill(MyDataSet, "ArrKategori");   

            DataTable MyDataTable    = MyDataSet.Tables["ArrKategori"];
            MyDataTable.PrimaryKey    = new DataColumn[] {MyDataTable.Columns["Kategori"]};

            // New ArrayList
            ArrayList MyArrayList = new ArrayList();
            MyArrayList = GetArrangementID(ArrangorID);

            IEnumerator MyEnumerator = MyArrayList.GetEnumerator();
           
            while(MyEnumerator.MoveNext())
            {
!!!!!!!!-----> Fejl her, melder: Object reference not set to an instance of an object.
                DataRow Row = MyDataTable.Rows.Find(MyEnumerator.Current);
                Row.Delete();
!!!!!!!!<-----

            }

            MyDataAdapter.Update(MyDataSet, "ArrKategori");
            myConn.Close();

----------------------------------------------------------

Er der nogen, der kan se fejlen?
Avatar billede sw_red_6 Nybegynder
26. oktober 2004 - 11:42 #1
når du holder markøren over den linje kan du se hvilken del der er "forkert". kan du ikke prøve at gøre det og melde tilbage om på hvilken side af = fejlen er.
Jeg tror det er fordi Row er et objekt mens MyDataTable.Rows.Find(MyEnumerator.Current); er ikke et objekt, selvom det dog virker lidt mærkeligt at de ikke kan arbejde sammen.
Avatar billede raven_ Nybegynder
26. oktober 2004 - 15:59 #2
Jeg er ikke lige helt med på hvad det er jeg skal gøre.
Avatar billede raven_ Nybegynder
26. oktober 2004 - 16:57 #3
Nå, gav op og gjorde det via en god gammel sql delete statement.

Men jeg vil gerne sige tak til sw red 6 for tiden og til andre der kiggede på det.

Mange tak
Mvh Raven_
Avatar billede sw_red_6 Nybegynder
27. oktober 2004 - 09:26 #4
Jeg ville have at du holder markøren over den linie der er fejl i når du kompilerer din kode. Derved kan du nogen gange se hvad der står i variablerne. Jeg tror at du for den fejl fordi MyDataTable.Rows.Find(MyEnumerator.Current); ikke er et objekt.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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