Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem:

Aus einer Oracle-DB sollen DS mit einer SQL-Anweisung gelöscht werden.

Meine SQL-Anweisung ist ok, und die Verbindung zur DB läuft ohne Probleme eine vorherige Ansicht der DS mit SELECT klappt auch. Leider funktioniert aber das löschen nicht, obwohl ich auch keine Fehlermeldung bekomme. Deshalb habe ich mal den Code kurz kopiert:

----

try{

OracleCommand command = new OracleCommand(del ,connection);

OracleDataAdapter adapter = new OracleDataAdapter();

adapter.DeleteCommand = command;

}

catch {...}

----

conn - ist eine bestehende Verbindung

del - enthält den vollständigen SQL-String

Wer hat eine Idee???

Danke,

Tastenstreichler

Geschrieben

Hi,

über das ExcecuteNonQuery geht es zwar, ist aber trotzdem falsch. Du schreibst das Delete Command in einen DataAdapter, der dient aber eigentlich nur zur Verbindung von Dataset und Datenbank. Du brauchst weder Dataset noch DataAdapter.

Zufälligerweise enthält der DA 4 SQLCommand Objekte, deswegen funktioniert es auch wenn du, wie in deinem Fall, das DeleteCommand vergewaltigst. Das DeleteCommand ist eigentlich das Kommando das ausgeführt wird wenn du DataRows aus dem DataSet gelöscht hast und diese jetzt mit der DB synchronisieren willst.

Um es abzukürzen:

Die korrekte Anweisung lautet:

OracleCommand cmd = new OracleCommand( commandString, connection );

try

{

connection.Open();

cmd.ExcecuteNonQuery();

}

finally

{

cmd.Dispose();

connection.Close();

}

Du solltest dich unbedingt mit den Konzepten von ADO.NET auseinandersetzen, die zusammengefrickelten Programme werden sonst unwartbar. Als Lesestoff kann ich empfehlen:

Programming ADO.NET 2.0 Core Reference von Microsoft Press

Geschrieben

Danke für den Tipp.

Ich bin nach meinen gestrigen 12 Stundentag erst heute dazugekommen es zu lesen. :schlaf:

Und ich muss gestehen, dass ich mindestens 10 Minuten gebraucht habe, um Deine Kritik zu verstehen (immerhin heute auch schon wieder 9 h am Rechner :schlaf::schlaf:).

Ich habe jetzt das Programm geändert und muss gestehen es sieht gleich viel vernünftiger aus. Wie Du richtig erkannt hast bin ich noch nicht besonders versiert in ADO.NET.

Also nochmal vielen Dank an alle, die mir geholfen haben.

Tastenstreichler

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...