2014年7月5日 星期六

.NET存取Oracle資料庫相關Provider說明,ODBC、OleDb、OracleClient、ODAC

使用時確認各Provider支援的Oracle版本


1).NET Framework Data Provider for ODBC:

(Open Database Connectivity,開放資料庫互連)提供了標準的API方法來存取資料庫管理系統。尚未有ODBC之前,若要開發資料庫應用程式,必須使用資料庫廠商隨資料庫產品一同發行的一些工具集來存取資料庫。微軟於1992年發表了ODBC。
using System.Data;
using Microsoft.Data.Odbc;

     {
       OdbcConnection cn;
       OdbcCommand cmd;
       string MyString;

       MyString="Select * from Customers";

       cn= new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=myOracleServer;UID=spring;PWD=spring;");

       cmd=new OdbcCommand(MyString,cn);
       cn.Open();

       MessageBox.Show("Connected");

       cn.Close();
     }

2).NET Framework Data Provider for OLE DB:

是微軟為以統一方式存取不同型別的資料儲存設計的一種應用程式介面,是一組用元件物件模型(COM)實作的介面。OLE DB Provider for Oracle Client,呼叫 Oracle 資料庫的 OLE DB 資料提供者,通常由 Oracle 原廠提供。
using System.Data;
using System.Data.OleDb;

        {
            OleDbConnection cn;
            OleDbCommand cmd;
            string MyString;

            MyString = "Select * from Customers";

            cn = new OleDbConnection("Data Source=myOracleServer;Provider=OraOLEDB.Oracle.1;User Id=spring;Password=spring");

            cmd= new OleDbCommand(MyString,cn);
            cn.Open();

            MessageBox.Show("Connected");

            cn.Close();
        }

3).NET Framework Data Provider for Oracle:

支援Oracle用戶端軟體8.1.7(含)以後版本。Visual Studio 2010後建議使用ODP.NET。
(Microsoft:The types in System.Data.OracleClient are deprecated)
using System.Data;
using System.Data.OracleClient;

         {

            OracleConnection cn;
            OracleCommand cmd;
            string MyString;

            MyString = "Select * from Customers";

            cn = new OracleConnection("Data Source=myOracleServer;User Id=spring;Password=spring");

            cmd = new OracleCommand(MyString, cn);
            cn.Open();

            MessageBox.Show("Connected");

            cn.Close();

         }

4)ODAC:

(ODP.NET:Oracle Data Provider for .NET)不同版本 Visual Studio 須搭配不同ODAC(Oracle Data Access Components)

Web.config
<add name="Default" connectionString="Data Source=myOracleServer;User Id=spring;Password=spring;providerName="Oracle.DataAccess.Client"/>
using Oracle.DataAccess.Client;

         using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString))
         {
            OracleCommand cmd;
            try
            {
              conn.Open();
              cmd = new OracleCommand();
              cmd.Connection = conn;
              cmd.CommandText = "";

              cmd.ExecuteNonQuery();
             }
             catch (Exception ex)
             {}
             //使用using不需要close與dispose
             //finally
             //{
             //    cmd.Dispose();
             //    conn.Close();
             //    conn.Dispose();
             //}    
          }

沒有留言:

張貼留言