2009-07-14 14 views
0

Ok, das scheint einfach, aber ich kann keine Lösung finden, um mein Leben zu retten. Ich versuche, eine sehr einfache INSERT-Abfrage für eine Oracle-DB durchzuführen. Ich kann mich in der Datenbank in TOAD mit den gleichen Zugangsdaten einloggen, die ich im Code verwende, und führe die INSERT-Prozedur ohne Probleme aus, so nah wie ich sagen kann, gibt es keine Berechtigungsprobleme mit den Zugangsdaten und die Abfrage selbst ist syntaktisch korrekt. Wenn ich versuche, den folgenden Code auszuführen, hängt es einfach. Keine Fehler oder irgendetwas. Ich kann sehen, dass die Sitzung in TOAD erscheint, so weit ich sagen kann, dass der Code die Verbindung ohne Probleme herstellt. Hier ist der Code:Abfrage hängt

 String connStr = "Data Source=DB;User id=<USER>;Password=<PASSWORD>;"; 
     String query = "INSERT INTO table (fields) VALUES (values)"; 

     OracleConnection conn = new OracleConnection(connStr); 
     conn.Open(); 
     OracleCommand cmd = conn.CreateCommand(); 
     cmd.CommandText = query; 
     cmd.CommandType = CommandType.Text; 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
     conn.Dispose(); 

Ich habe auch versucht, eine ADO-Verbindung und hat das gleiche Ergebnis. Irgendwelche Ideen werden geschätzt.

+0

ist die neue Zeile in der Datenbank auch wenn es hängt? – northpole

+0

Entschuldigung, das hätte ich erwähnen sollen. Es ist nicht. – EBGreen

Antwort

3

Haben Sie die Transaktion in Toad festgeschrieben oder rückgängig gemacht? Ihre Anwendung könnte auf eine Sperre warten, die von Ihrer von Toad erstellten Sitzung gehalten wird.

+0

Ich habe nicht, aber ich werde das jetzt versuchen. – EBGreen

+0

Ding! Ding! Ding! Wir haben einen Sieger! Danke vielmals. – EBGreen

+0

Schön, ich warte darauf zu hören, ob die Zeile in der DB war, um das zu erwähnen. – northpole

0

Haben Sie versucht, es in eine Transaktion zu verpacken und explizit nach dem Einfügen zu committen? IIRC, Oracle Standard-Semantik sind sehr transaktionsorientiert, im Gegensatz zu SQL Server.

+0

Ich werde das versuchen. Wenn Sie Code haben, der helfen würde. Unabhängig davon werde ich im Internet stöbern und schauen, ob ich ein Beispiel finden kann. – EBGreen