C# เรียกใช้ Oracle Database

  1. ติดตั้ง Oracle Data Provider for .NET
  2. ติดตั้ง Official Oracle ODP.NET, Managed Driver ด้วย NuGet
  3. กำหนดค่า connection string
  4. เพิ่มโค๊ดที่ Program.cs

1.ติดตั้ง Oracle Data Provider for .NET

ดาว์นโหลด Oracle Data Provider for .NET

ถ้าใช้กับ Visual Studio 2013 จะได้ไฟล์ ODTforVS2013_121025.exe ให้ทำการติดตั้งไฟล์นี้

2.ติดตั้ง Official Oracle ODP.NET, Managed Driver ด้วย NuGet

สร้างโปรเจ็กส์แบบ Console Application แล้วทำการติดตั้ง Official Oracle ODP.NET, Managed Driver ด้วย NuGet

Official Oracle ODP.NET, Managed Driver

เมื่อติดตั้งเสร็จจะสามาเรียกใช้ using Oracle.ManagedDataAccess.Client; ได้

Note: ถ้าใช้
using System.Data.OracleClient;
จะได้ Error ดังนี้
Additional information: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.
เลยเปลี่ยนมาใช้
using Oracle.ManagedDataAccess.Client;
แทน

3.กำหนดค่า connection string

กำหนดค่า connection string ไว้ในไฟล์ config โดยดูวิธีการกำหนด config ที่ Use Easy Connect to Setup Database Connection เช่น

<configuration>
  <connectionStrings>
    <add name="oracleserver" 
      connectionString="Data Source=<hostname or IP address>:<listener port>/<database service name>;User Id=<username>;Password=<password>;Min Pool Size=15;Connection Lifetime=180;"
      providerName="System.Data.OracleClient"/>
  </connectionStrings>
</configuration>

4.เพิ่มโค๊ดที่ Program.cs

using Oracle.ManagedDataAccess.Client;
using System;
using System.Configuration;
using System.Data;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string query = "SELECT count(*) AS count from mytable";
            DataTable dt = ExecuteQuery(query);
            Console.WriteLine(dt.Rows[0]["count"].ToString());
        }

        public static DataTable ExecuteQuery(string query)
        {
            string strConnection = ConfigurationManager.ConnectionStrings["oracleserver"].ToString();

            using (OracleConnection conn = new OracleConnection(strConnection))
            {
                using (OracleCommand command = new OracleCommand(query, conn))
                {
                    try
                    {
                        conn.Open();

                        OracleDataAdapter da = new OracleDataAdapter(query, conn);

                        DataSet ds = new DataSet();
                        da.Fill(ds, "Table1");
                        return ds.Tables[0];
                    }
                    catch (OracleException ex)
                    {
                       Console.WriteLine(ex.Message);
                        return null;
                    }
                    finally
                    {
                        conn.Close();
                    }
                }
            }
        }
    }
}

ทดลองรันดูก็จะได้จำนวนแถวออกมาละ