Je dois me connecter à une base de données Oracle (externe) via Visual Studio 2010. Mais je ne souhaite pas installer Oracle sur ma machine. Dans mon projet, j'ai référencé: System.Data.OracleClient . Mais ce n'est pas satisfaire le besoin. J'ai un "IDE Oracle SQL Developer" dans lequel je lance des requêtes SQL sur la base de données Oracle.
J'ai ce code jusqu'à présent:
private static string GetConnectionString()
{
String connString = "Host= serverName;database=myDatabase;uid=userName;pwd=passWord";
return connString;
}
private static void ConnectingToOracle()
{
string connectionString = GetConnectionString();
using (OracleConnection connection = new OracleConnection())
{
connection.ConnectionString = connectionString;
connection.Open();
Console.WriteLine("State: {0}", connection.State);
Console.WriteLine("ConnectionString: {0}",
connection.ConnectionString);
OracleCommand command = connection.CreateCommand();
string sql = "SELECT * FROM myTableName";
command.CommandText = sql;
OracleDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string myField = (string)reader["MYFIELD"];
Console.WriteLine(myField);
}
}
}
Jusqu'à présent, j'ai lu ces blogs:
http://st-curriculum.Oracle.com/tutorial/DBXETutorial/index.htm
http://blogs.msdn.com/b/kaevans/archive/2009/07/18/connecting-to-Oracle-from-visual-studio.aspx
Jusqu'à présent, je n'ai rien téléchargé d'Oracle. Quelles mesures dois-je prendre pour que cela se produise?
Tout d’abord, vous devez télécharger et installer ODP à partir de ce site http://www.Oracle.com/technetwork/topics/dotnet/index-085163.html
Après l'installation, ajoutez une référence à l'assembly Oracle.DataAccess.dll .
Vous êtes bon pour aller après cela.
using System;
using Oracle.DataAccess.Client;
class OraTest
{
OracleConnection con;
void Connect()
{
con = new OracleConnection();
con.ConnectionString = "User Id=<username>;Password=<password>;Data Source=<datasource>";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);
}
void Close()
{
con.Close();
con.Dispose();
}
static void Main()
{
OraTest ot= new OraTest();
ot.Connect();
ot.Close();
}
}
Vous pouvez également utiliser Oracle.ManagedDataAccess le package NuGet (.NET> = 4.0, base de données> = 10g, version 2).
Utiliser Nuget
Manage NuGet packages...
Browse
, recherchez Oracle
et installez Oracle.ManagedDataAccess
En code utilisez la commande suivante (Ctrl+. ajouter automatiquement la directive using).
Notez la chaîne de données différente qui, par rapport à Java, est différente.
// create connection
OracleConnection con = new OracleConnection();
// create connection string using builder
OracleConnectionStringBuilder ocsb = new OracleConnectionStringBuilder();
ocsb.Password = "autumn117";
ocsb.UserID = "john";
ocsb.DataSource = "database.url:port/databasename";
// connect
con.ConnectionString = ocsb.ConnectionString;
con.Open();
Console.WriteLine("Connection established (" + con.ServerVersion + ")");
La prochaine approche me convient avec Visual Studio 2013 Update 4 1- Dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur Références, puis sélectionnez Ajouter des références. 2- Assemblys> Framework> System.Data.OracleClient> OK. Vous pouvez ensuite ajouter des éléments à l'aide de System.Data. OracleClient dans votre application et gère la base de données comme vous le faites avec la base de données Sql Server, sauf que le préfixe Sql est remplacé par Oracle, comme dans SqlCommand, devient OracleCommand, par exemple, pour établir une liaison avec Oracle XE.
OracleConnection oraConnection = new OracleConnection(@"Data Source=XE; User ID=system; Password=*myPass*");
public void Open()
{
if (oraConnection.State != ConnectionState.Open)
{
oraConnection.Open();
}
}
public void Close()
{
if (oraConnection.State == ConnectionState.Open)
{
oraConnection.Close();
}}
et pour exécuter des commandes telles que INSERT, UPDATE ou DELETE en utilisant une procédure stockée, nous pouvons utiliser la méthode suivante
public void ExecuteCMD(string storedProcedure, OracleParameter[] param)
{
OracleCommand oraCmd = new OracleCommand();
oraCmd,CommandType = CommandType.StoredProcedure;
oraCmd.CommandText = storedProcedure;
oraCmd.Connection = oraConnection;
if(param!=null)
{
oraCmd.Parameters.AddRange(param);
}
try
{
oraCmd.ExecuteNoneQuery();
}
catch (Exception)
{
MessageBox.Show("Sorry We've got Unknown Error","Connection Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
Dans ce cas, System.Data.OracleClient doit avoir accès à certaines des dll Oracle qui ne font pas partie de .Net. Solutions: