【C#】Oracleへの接続をクライアントインストール無しで行う #2

OracleClientのインストールに関する記事を書きましたがサンプルに問題がありましたので訂正です。

https://programchan.com/archives/c-sharp-oracle-no-client-1

問題点

この記事の最後に書いてあるサンプルですがODP.netを参照しただけではエラーとなります。原因はOracleConnectionからはQueryメソッドは存在しないからです。

ODP.netのみでクエリを実行する場合はCommandクラスを呼び出してからExecuteNonQueryなどを実行する形になります。

解決方法

記事では記載していませんでしたが実際にはDapper dot netを追加していました。Dapper dot netはマイクロORMで追加はNuGetで出来ます。

https://programchan.com/archives/c-sharp-nuget

ちなみにDapperを使用しない場合のサンプルも書いておきます。

using System;
using Oracle.ManagedDataAccess.Client;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var Connection = new OracleConnection())
            {
                //ユーザ端末にはクライアントをインストールしないのでtnsnames.oraが存在しない
                //tnsnamesは直接指定する
                var DataSource = "mydb=" +
                                "(DESCRIPTION =" +
                                    "(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))" +
                                    "(CONNECT_DATA =" +
                                    "(SERVER = DEDICATED)" +
                                    "(SERVICE_NAME = mydb)" +
                                    ")" +
                                ")";
                Connection.ConnectionString = "User ID=SCOTT; Password=TIGER; Data Source=" + DataSource + ";";
                Connection.Open();
                var Command = new OracleCommand("SELECT hoge FROM fuga");
                Command.Connection = Connection;
                var dr = Command.ExecuteReader();
                while (dr.Read())
                {
                    Console.WriteLine(dr["hogehoge"]);
                }
            }
            Console.ReadLine();
        }
    }
}

Follow me!

前の記事

【VisualStudio】NuGetの使い方

次の記事

【C#】Dapper dot netを使ってみる