44

Visual Studio 2010 を介して Oracle DB (外部) に接続する必要があります。しかし、自分のマシンに Oracle をインストールしたくありません。私のプロジェクトでは、System.Data.OracleClientを参照しました。しかし、それはニーズを満たしていません。Oracle dbに対して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 から何もダウンロードしていません。これを実現するには、どのような手順を踏む必要がありますか?

4

5 に答える 5

55

まず、このサイトhttp://www.oracle.com/technetwork/topics/dotnet/index-085163.htmlから ODP をダウンロードしてインストールする必要があります 。

インストール後、アセンブリ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(); 
    } 
}
于 2012-09-24T15:40:58.973 に答える
24

Oracle.ManagedDataAccess NuGet パッケージも使用できます(.NET >= 4.0、データベース >= 10g Release 2)。

于 2016-03-21T09:57:22.387 に答える
1

次のアプローチは、Visual Studio 2013 Update 4 で機能します。1- ソリューション エクスプローラーから [参照] を右クリックし、[参照の追加] を選択します。2- [アセンブリ] > [フレームワーク] > [System.Data.OracleClient] > [OK] を選択します。アプリケーションで OracleClient を使用し、Sql Server データベースと同様にデータベースを処理します。ただし、SqlCommand のようにプレフィックスを Sql から Oracle に変更すると、たとえば 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);
}
}
于 2015-04-28T08:02:50.220 に答える
0

基本的に、この場合、System.Data.OracleClientは、.Net の一部ではないいくつかの Oracle DLL にアクセスする必要があります。ソリューション:

  • Oracle Client をインストールし、bin の場所を Windows の Path 環境変数に追加する OR
  • oraociicus10.dll (Basic-Lite バージョン) または aociei10.dll (Basic バージョン)、oci.dll、orannzsbb10.dll、および oraocci10.dll を Oracle クライアントのインストール可能なフォルダーからアプリケーションの bin フォルダーにコピーして、アプリケーションが必要な dll を見つけられるようにします。
于 2015-12-15T13:24:45.040 に答える