ich möchte per C# herausfinden ob in einer Oracle-Datenbank Daten stehen.
Ich generiere mir also den Suchstring SELECT * FROM..... und führe dann meine Abfrage mit dem OracleExecuteReader durch. Dann versuche ich in einem TRY auf die zurückgegebenen Werte zuzugreifen. Falls TRY fällt erkenne ich im CATCH-Block dass keine Daten zurückgeliefert wurden - d.h. meine Abfrage brachte keine Ergebnisse.
Leider finde ich diese Methode extrem umständlich und unschön. Gibt es irgendeine schnellere Art herauszufinden ob ein SELECT-Statement leer zurückkommt ?
Hm .. so weit ich weiß stimmt das was du schreibst nicht ganz - wenn der Read()-Befehl wirft keine Exception, wenn er keine Daten gefunden hat ...
Code:
OleDbConnection con = new OleDbConnection("ConnectionString"); OleDbCommand cmd = new OleDbCommand("select * from table where ID=3"); OleDbDataReader reader = cmd.ExecuteReader();
if (reader.Read()) { // Es wurde was gefunden } else { //Es wurde nichts gefunden }
Ne Andere Möglichkeit seh ich eigentlich nicht - bin jetzt zwar ned der DB-Chief in C# ... aber naja --
Hat der OracleReader eine Methode NextResult oder so? Irgendeine Methode müsste es schon geben, um zu prüfen, ob Tupel aus der Datenbank zurückgegeben wurden... -- Mit 40 Fieber sitzt man nicht mehr vor dem PC. Man liegt im Bett. Mit dem Notebook.