Connectez-vous à la base de données Oracle dans CSharp sans Oracle Client
2. Connexion à Oracle depuis C# - Vue d'ensemble
D'abord, vous devez comprendre le principe de connexion de C# à Database Oracle.
Modèle 1:
Dans ce modèle, sur l'ordinateur qui exécute l'application C#, vous devez installer Oracle Client, c'est une part de l' Oracle qui installe au client pour soutenir de la connexion à database Oracle principale. Si database Oracle est installée dans un ordinateur qui exécute l'application C# , vous ne devez pas installer Oracle Client parce que database Oracle est Oracle Client lui- même. La capacité de Oracle Client est environ 50MB.
Modèle 2:
Le modèle 2 vous permet de connecter directement avec Oracle, sans besoin d'installer Oracle Client sur l'ordinateur qui exécute l'application C#. Vous devez copier quelques bibliothèques DLL d' Oracle client, et quelques bibliothèques ODAC XCopy dans projet.
Parce qu'on n' utilise pas Oracle Client, donc le fichier tnsname.ora ne comprend pas l'information de database Oracle, donc Connection String a besoin de posséder les paramètres précis de database étant comme le contenu du fichier tnsname.ora.
Parce qu'on n' utilise pas Oracle Client, donc le fichier tnsname.ora ne comprend pas l'information de database Oracle, donc Connection String a besoin de posséder les paramètres précis de database étant comme le contenu du fichier tnsname.ora.
// La chaîne de connexion se connecte directement à 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. Télécharger des bibliothèques
64-bit
32-bit
Les résultats de téléchargement:
Remarque: Vous pouvez utiliser la version 32bit que vous venez de télécharger pour utiliser (même si votre système d'exploitation est 64bit), si vous utilisez la version 64bit parfois l'utilisation C# connecte Oracle, vous receverez une erreur suivante: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.
Malgré que mon ordinateur utilise le système d'exploitation 64bit, mais j'utilise ODAC 32bit qu'on vient de télécharger dans l'étape précédente.
4. Copiez les bibliothèques dans le projet
J'ai créé un projet nommé ConnectOracleWithoutClient:
Le projet est créé.
Compressez le fichier zip que vous venez de télécharger.
Copiez les fichiers suivants:
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 |
Copiez et collez des fichiers directement dans votre projet dans Visual Studio:
Dans Visual Studio, sélectionnez tous les fichiers DLL et mettez des propriétés pour eux:
- Copy to Output Directory: Copy if newer
Déclarez la bibliothèque, référez à Oracle.DataAccess.dll.
5. Tester la connexion
La classe DBOracleUtils a une méthode de l'utilitaire pour connecter directement à Oracle.
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' se connecte directement à 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;
}
}
}
Une classe de l'utilitaireavec des paramètres connecte à votre base de donnée de 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();
}
}
}
Exécution de l'exemple:
Tutoriels de programmation C#
- Héritage et polymorphisme en C#
- De quoi avez-vous besoin pour démarrer avec C#?
- Apprenez rapidement à développer en C# pour débutant
- Installer Visual Studio 2013 sur Windows
- Classe abstraite et interface dans C#
- Installer Visual Studio 2015 sur Windows
- Compression et décompression dans C#
- Tutoriel de programmation multithread C#
- Tutoriel C# Delegate et Event
- Installer AnkhSVN sur Windows
- Programmation C# pour l'équipe utilisant Visual Studio et SVN
- Installer .Net Framework
- Modificateur d'accès (Access Modifier) en C#
- Le Tutoriel de C# String et de StringBuilder
- Le Tutoriel de C# Properties
- Le Tutoriel de C# Enum
- Le Tutoriel de C# Structure
- Le Tutoriel de C# Generics
- Tutoriel sur la gestion des exceptions C#
- Le Tutoriel de C# Date Time
- Manipulation de fichiers et de répertoires dans C#
- Tutoriel C# Stream - flux binaire en C#
- Le Tutoriel d'expressions régulières C#
- Se Connecter à la base de données SQL Server dans C#
- Travailler avec la base de données SQL Server dans C#
- Connectez-vous à la base de données MySQL dans C#
- Travailler avec la base de données MySQL dans C#
- Connectez-vous à la base de données Oracle dans CSharp sans Oracle Client
- Utilisation d'une base de données Oracle en utilisant C#
Show More