Stellen Sie ohne Oracle Client eine Verbindung zur Oracle-Datenbank in C# her
2. Die Überblick über die Verbindung aus C# in Oracle
Zuerst sollen Sie das Verbindungsmechanismus aus einem Programm C# in Database Oracle.kennen
Das Modell 1
In diesem Modell sollen Sie Oracle Client auf dem Computer,der C# läuft, installieren. Das ist eine Teil der Oracle, die auf dem Klient gelegt wird, um die Verbindung mit der Database von HauptOracle zu unterstützen. Wenn die Database Oracle in Ihrem Computer laufend C# gelegt wird, sollen Sie Oracle Client nicht installieren. Denn die Databse Oracle ist selbst ein Oracle Client. Die Kapazität von Oracle Client ist ca. 50MB.
Das Modell 2:
Das Modell 2 genehmigt Ihnen, direkt in Oracle zu verbinden, ohne die Installierung von Oracle Client auf dem C# laufenden Computer . Sie sollen einige Bibliothek DLL von Oracle client und einige Bibliothek ODAC XCopy ins Projekt kopieren.
Und Denn Oracle Client wird nicht benutzt, gibt es keine File tnsname.ora mit der Information der Database Oracle. Deshalb enthaltet Connection String die Parameter der Database wie die Inhalt von der File tnsname.ora.
Und Denn Oracle Client wird nicht benutzt, gibt es keine File tnsname.ora mit der Information der Database Oracle. Deshalb enthaltet Connection String die Parameter der Database wie die Inhalt von der File tnsname.ora.
// Connection String verbindet direkt mit Oracle.
string connString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = "
+ host + ")(PORT = " + port + "))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = "
+ sid + ")));Password=" + password + ";User ID=" + user;
3. Die Bibliothek herunterladen
64-bit
32-bit
Das Ergebnis vom Herunterladen
Beachten Sie: Sie können die heruntergeladete Version 32bit benutzen (auch für Ihr 64 bit Betriebssystem). Wenn Sie bei der Verwendung von Version 64 bit C# in Oracle verbinden, manchmal erscheint die folgenden Fehler:An unhandled exception of type 'System.BadImageFormatException' occurred in mscorlib.dll Additional information: Could not load file or assembly 'Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Obwohl das Betriebssystem in meinem Computer 64 bit ist, benutze ich aber das oben heruntergeladete ODAC 32bit
4. Die Bibliothek ins Projekt kopieren
Ich erstelle ein Projekt mit dem Name ConnectOracleWithoutClient:
Das Project wird erstellt
Diskomprimieren Sie die vorher heruntergeladeten Zip File
Die folgenden File kopieren
Directory | File Copy |
<DIR>/instantclient_12_1 | oci.dll |
<DIR>/instantclient_12_1 | orannzsbb12.dll |
<DIR>/instantclient_12_1 | oraocci12.dll |
<DIR>/instantclient_12_1 | oraocci12d.dll |
<DIR>/instantclient_12_1 | oraociei12.dll |
<DIR>/instantclient_12_1 | oraons.dll |
<DIR>/odp.net4/odp.net/bin/4 | Oracle.DataAccess.dll |
<DIR>/oramts/bin | oramts.dll |
<DIR>/oramts/bin | oramts12.dll |
<DIR>/oramts/bin | oramtsus.dll |
<DIR>/odp.net4/bin | OraOps12.dll |
Direkt die oben gewähnten File in Ihrem Projekt auf Visual Studio:kopieren und kleben
Auf Visual Studio wählen Sie die File DLL und ihre Attribute formen
- Copy to Output Directory: Copy if newer
Die Bibliothek anmelden und nach Oracle.DataAccess.dll.zuweisen
5. Die Verbindung prüfen
Die Klasse DBOracleUtils hat eine Utility Methode um direkt mit Oracle zur verbinden
DBOracleUtils.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.DataAccess.Client;
namespace Tutorial.SqlConn
{
class DBOracleUtils
{
public static OracleConnection
GetDBConnection(string host, int port, String sid, String user, String password)
{
Console.WriteLine("Getting Connection ...");
// 'Connection String' verbindet direkt mit Oracle.
string connString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = "
+ host + ")(PORT = " + port + "))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = "
+ sid + ")));Password=" + password + ";User ID=" + user;
OracleConnection conn = new OracleConnection();
conn.ConnectionString = connString;
return conn;
}
}
}
Eine Utility Klasse mit den Parameter verbindet Ihre Database Oracle :
DBUtils.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.DataAccess.Client;
namespace Tutorial.SqlConn
{
class DBUtils
{
public static OracleConnection GetDBConnection()
{
string host = "192.168.205.1";
int port = 1521;
string sid = "db12c";
string user = "simplehr";
string password = "12345";
return DBOracleUtils.GetDBConnection(host, port, sid, user, password);
}
}
}
Test Oracle Connection:
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.DataAccess.Client;
using Tutorial.SqlConn;
namespace ConnectOracleWithoutClient
{
static class Program
{
static void Main(string[] args)
{
//
OracleConnection conn = DBUtils.GetDBConnection();
Console.WriteLine("Get Connection: " + conn);
try
{
conn.Open();
Console.WriteLine(conn.ConnectionString, "Successful Connection");
}
catch (Exception ex)
{
Console.WriteLine("## ERROR: " + ex.Message);
Console.Read();
return;
}
Console.WriteLine("Connection successful!");
Console.Read();
}
}
}
Die Applikation durchführen
Anleitungen C#
- Vererbung und Polymorphismus in C#
- Was ist erforderlich, um mit C# zu beginnen?
- Schnelles Lernen C# für Anfänger
- Installieren Sie Visual Studio 2013 unter Windows
- Abstrakte Klasse und Schnittstelle in C#
- Installieren Sie Visual Studio 2015 unter Windows
- Kompression und Dekompression in C#
- Die Anleitung zu C# Multithreading Programmierung
- Die Anleitung zu C# Delegate und Event
- Installieren Sie AnkhSVN unter Windows
- C# Programmierung für Team mit Visual Studio und SVN
- Installieren Sie .Net Framework
- Zugriffsmodifikator (Access Modifier) in C#
- Die Anleitung zu C# String und StringBuilder
- Die Anleitung zu C# Property
- Die Anleitung zu C# Enum
- Die Anleitung zu C# Structure
- Die Anleitung zu C# Generics
- Ausnahmen und Ausnahmebehandlung in C#
- Die Anleitung zu C# Date Time
- Manipulieren von Dateien und Verzeichnissen in C#
- Die Anleitung zu C# Stream - binäre Ströme in C#
- Die Anleitung zu C# Reguläre Ausdrücke
- Stellen Sie in C# eine Verbindung zur SQL Server-Datenbank her
- Arbeiten Sie mit der SQL Server-Datenbank in C#
- Stellen Sie in C# eine Verbindung zur MySQL-Datenbank her
- Arbeiten Sie mit der MySQL-Datenbank in C#
- Stellen Sie ohne Oracle Client eine Verbindung zur Oracle-Datenbank in C# her
- Arbeiten Sie mit der Oracle-Datenbank in C#
Show More