2017-12-26 42 views
0

Ich habe versucht, Tabelle, die Top-Datensatz von Oracle-Datenbank über ODBC-Treiber hat. Dafür verwende ich den folgenden Code.So erhalten Sie Datentabelle ohne Verwendung des Datenbanknamens in Abfrage

OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); 
     builder.ConnectionString = "Driver={Oracle in OraClient11g_home1};Dbq=localhost;Uid=system;Pwd=abc;Database = NORTHWIND"; 
OdbcConnection con = new OdbcConnection(); 
     con.ConnectionString = builder.ConnectionString; 
     con.Open(); 
     string query = "SELECT \"NORTHWIND\".\"ORDERS\".\"ID\" AS \"My field id\" FROM \"NORTHWIND\".\"ORDERS\" WHERE ROWNUM = 1"; 
     OdbcCommand cmd = new OdbcCommand(query,con); 
     var k = cmd.ExecuteReader(); 
     var datatable = new DataTable(); 
     datatable.Load(k); 
     con.Close(); 

Der obige Code funktioniert gut für mich. Ich muss Abfrage ohne Datenbanknamen ausführen. Hier ist der Datenbankname NORTHWIND. Aber wenn ich Abfrage ohne Datenbanknamen wie "SELECT \"ORDERS\".\"ID\" AS \"My field id\" FROM \"ORDERS\" WHERE ROWNUM = 1" habe, habe ich eine Ausnahme "Tabelle oder Ansicht existiert nicht."

Auch wenn meine Connectionstring Datenbankname hat, habe ich diese Ausnahme.

Kann mir jemand erklären, warum ich die obige Ausnahme bei der Abfrage ohne Datenbanknamen bekam?

+0

Ich möchte this- Abfrage lik auszuführen e dies. query = "SELECT ORDERS.ID ALS Feld ID VON ORDERS WHERE ROWNUM = 1"; –

Antwort

0
+0

Danke für Ihre Antwort. Mein Problem wird nicht gelöst, nachdem die Verbindungszeichenfolge wie erwähnt geändert wurde. Können Sie mir bitte eine andere Lösung vorschlagen? –

+0

@KavithaM Bitte überprüfen Sie die bearbeitete Antwort. Überprüfen Sie auch den letzten Referenzlink. –

Verwandte Themen