Visual Studio 2010を介してOracle DB(外部)に接続する必要があります。しかし、マシンにOracleをインストールしたくありません。私のプロジェクトでは、System.Data.OracleClientを参照しました。しかし、それはニーズを満たしていない。 Oracleデータベースに対してSQLクエリを実行する "Oracle SQL Developer IDE"があります。
私はこれまでにこのコードを持っています:
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);
}
}
}
これまでのところ、これらのブログを読みました。
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
これまでのところ、Oracleからは何もダウンロードしていません。これを実現するには、どのような手順を実行する必要がありますか?
まず、このサイトからODPをダウンロードしてインストールする必要があります http://www.Oracle.com/technetwork/topics/dotnet/index-085163.html
インストール後に、アセンブリの参照を追加しますOracle.DataAccess.dll。
この後に行くのは良いことです。
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();
}
}
Oracle.ManagedDataAccessNuGetパッケージも使用できます(.NET> = 4.0、データベース> = 10gリリース2)。
Nugetの使用
Manage NuGet packages...
を選択しますBrowse
タブを選択し、Oracle
を検索してインストールします Oracle.ManagedDataAccess
コードでは、次のコマンド(Ctrl+. usingディレクティブを自動的に追加します)。
Javaと比較して異なるDataSource文字列に注意してください。
// 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 + ")");
次のアプローチは、Visual Studio 2013 Update 4 1で動作します。ソリューションエクスプローラーから[参照]を右クリックし、[参照の追加] 2- [アセンブリ]> [フレームワーク]> [System.Data.OracleClient]> [OK]を選択します。その後、System.Dataを使用して自由に追加できます。アプリケーションのOracleClientと、SqlCommandのように接頭辞をSqlからOracleに変更することを除き、Sql Serverデータベースの場合と同様にデータベースを処理します。たとえば、Oracle XEにリンクするためにOracleCommandになります。
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();
}}
ストアドプロシージャを使用してINSERT、UPDATE、DELETEなどのコマンドを実行するには、次のメソッドを使用できます
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);
}
}
基本的にこの場合、System.Data.OracleClientは、.Netの一部ではないOracle dllの一部にアクセスする必要があります。ソリューション: