Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Connection zu Oracle-Datenbank


wuschel_core - Do 07.06.12 10:35
Titel: Connection zu Oracle-Datenbank
Hallo Leute !
Also mein Problem ist das ich den ConnectionString nicht hinbekomme um mich mit meiner lokal installierten oracle10g Datenbank zu verbinden!

Mein Versuch ( der nicht funktioniert ) :


C#-Quelltext
1:
2:
3:
4:
5:
SqlConnection con = new SqlConnection();
            con.ConnectionString = "Data Source=localhost;" +
                                   "Initial Catalog=Northwind;" +
                                   "User ID=SCOTT;" +
                                   "Password=tiger";


Mfg (;

Moderiert von user profile iconKha: Quote- durch C#-Tags ersetzt
Moderiert von user profile iconTh69: Titel geändert.


Th69 - Do 07.06.12 11:26

Hallo,

dein ConnectionString sowie die Klasse SqlConnection ist ja auch nur für den MS SQL Server - schau mal unter http://www.connectionstrings.com für Oracle nach.
Du benötigst einen .NET Provider für Oracle, am besten den Oracle Data Provider for .NET (ODP.NET) [http://www.oracle.com/technetwork/topics/dotnet/index-085163.html] und mußt dann auch dessen Klassen benutzen (OracleConnection, OracleCommand, ...).

P.S: Bei Oracle solltest du dann den Eintrag aus deiner "tnsnames.ora" als "Data Source"-Name verwenden.


wuschel_core - Do 07.06.12 11:49

Warum muss das immer so kompliziert sein : S

Also sonst verwende ich :

C#-Quelltext
1:
2:
3:
OleDbConnection Connection = null;
String connectionString = "Provider=OraOLEDB.Oracle; Data Source=localhost/xe; User Id = SCOTT ;Password = tiger; OLEDB.NET=True;";
Connection = new OleDbConnection(connectionString);


Warum ich das jetzt anders mache ?

SqlCommand braucht man um Proceduren aufzurufen, folgedessen auch die SqlConnection

C#-Quelltext
1:
2:
3:
SqlCommand cmd = new SqlCommand();
cmd.Connection = Connection;
cmd.CommandType = CommandType.StoredProcedure;


Heist das ich kann mit Oracle keine SqlCommands verwenden ohne Oracle Data Provider for .NET zu installieren ?

Mfg

Moderiert von user profile iconTh69: Quote- durch C#-Tags ersetzt


Th69 - Do 07.06.12 15:08

Hallo,

wie schon geschrieben sind die Klassen aus dem Namensbereich System.Data.SqlClient (SqlConnection, SqlCommand, ...) nur für den MS SQL Server.

Wenn du weiterhin OleDb verwenden willst (anstatt den Oracle .NET Provider - welcher aber zu empfehlen ist!), dann mußt du auch die entsprechenden OleDb-Klassen verwenden (OleDbConnection, OleDbCommand):

C#-Quelltext
1:
2:
3:
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Connection;
cmd.CommandType = CommandType.StoredProcedure;


wuschel_core - Fr 08.06.12 19:21

Achso jetzt checke ich's : D


C#-Quelltext
1:
2:
3:
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Connection;
cmd.CommandType = CommandType.StoredProcedure;


-> so hats funktioniert mit Oracle

Daanke Mfg

Moderiert von user profile iconChristian S.: Quote- durch C#-Tags ersetzt