C# Verbindung zum Oracle-Server aufbauen.

3

37

Gast
Hallo,

ich hab folgendes Problem:

Ich bekomme keine Verbindung zu einem Oracle-Server. Mit dem Programm 'Oracle SQL Developer' geht es ohne Probleme, aber leider nicht mit meinem Programm.

Einen 'System.Data.OracleClient' Verweis habe ich hinzugefügt und diesen auch im using Teil deklariert.

Ich habe es schon mit mehreren Connections-Strings probiert (in verschiedenen Variationen), aber keiner scheint zu funktionieren.

Hier ist der Code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.OracleClient;

namespace Tool
{
    class Temp
    {
        private OracleConnection conOr;
        private OracleCommand cmdO;

        public Temp()
        {
            //conOr = new OracleConnection(@"Data Source=myServer;Server=myService;Persist Security Info=True;User ID=myUser; Password=myPW;Unicode=True");
            //conOr = new OracleConnection(@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myServer)(PORT=1523)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=myService)));User Id=myUser;Password=myPW");
            //conOr = new OracleConnection(@"Data Source=myUser/myPW@myServer/myService:dedicated/myUser");
            //conOr = new OracleConnection(@"SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myServer)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=myService)));uid=myUser;pwd=myPW");
            conOr = new OracleConnection(@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myServer)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=myService)));User Id=myUser;Password=myPW");
            cmdO = new OracleCommand();
            cmdO.Connection = conOr;
        }
        public void oracleTest()
        {
            try
            {
                conOr.Open();
                cmdO.CommandText = "INSERT INTO DOC.Test (SP1, Zahlen) VALUES ('testeintrag', '13412465')";
                cmdO.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                //
            }
            finally
            {
                con.Close();
            }
        }

Ich habe je nach Versuch verschiedene Fehler bekommen, weiß aber nicht mit welcher zu welchem gehört:

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
ORA-12154: TNS:could not resolve the connect identifier specified


Hoffe ihr könnt mir weiterhelfen!
 
Was steht in deiner tnsnames.ora Datei drin?

Hintergrund: OracleClient greift über einen anderen Mechanismus auf die Datenbank zu als es der SQLDeveloper per Default macht.
 
Hab es selber erst vor ein paar Tagen ausprobiert!
Lade dir den Oracle Data Provider for .NET

Dann binde die Oracle.DataAccess.dll ein

Entweder deinen vorhandenen Connectionstring oder den verkürzten:
Code:
string oradb = "Data Source=OraDb;User Id=scott;Password=tiger;"

Code:
OracleConnection conn = new OracleConnection(oradb);
conn.ConnectionString = oradb;
conn.Open();
string sql = "SQL-STRING"; 
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.ExecuteNonQuery();
 
Noch eine Frage: Hast du den OracleClient (nicht von .Net) von Oracle installiert? Wenn du die Standard .Net Framework Oracle Klassen (Namespace System.Data.OracleClient) verwenden willst, ist eine Installation des entsprechenden Oracle Clients von Oracle notwendig. Alternativ könntest du auch eine Installation des ODP.Net, wie von ducky_boy geschrieben, machen.
 
Könntest du bitte nochmal genau definieren, wecler con0r-Versuch zu welcher Fehlermeldung führt?
Der Fehler ORA-12514 tritt server-seitig auf, der andere client-seitig.

Wenn du das gemacht hast, dann nimm in Zukunft den, bei dem der serverseitige Fehler auftritt, da in dem Fall (höchstwahrscheinlich) auf dem Client alles in Ordnung ist. Allerdings musst du dann noch auf dem Server nach dem Fehler forschen.
Dabei kann dir folgendes helfen:
http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/trouble.htm#BCGEJFJJ
 
Danke für eure Antworten!

Ich werde, wenn ich aus dem Urlaub zurück bin, alles ausprobieren und darüber berichten.
 
hi an alle ich betreibe ein psever mit ein online game wo zu 80% der verlauf des games geändert würd nun hatte ich ein hacker auf mein server und mir hat es den defloper zerlegt brauch da hilfe beim neu einrichten wer net wenn mir einer da helfen könnte
 
Zurück
Oben