iT邦幫忙

0

用asp.net C# 連結oracle 資料庫

請教一下
要怎麼用asp.net C# 連結oracle 資料庫
程式用windows Forms
網路查了一些.片片段段的,都試不出來
不清楚正確的連結字串和指令
如果有書,或文章可以推的也可以
感恩

0
棉花
iT邦新手 4 級 ‧ 2018-02-12 10:13:28
最佳解答

可以使用oracle提供的ODP.NET

黑大寫的簡介:
http://blog.darkthread.net/post-2015-03-31-managed-odp-net.aspx

我自己寫一段簡單的select程式給您參考

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

namespace OracleDBtest
{
    class Program
    {
        static void Main(string[] args)
        {
            string conn_str = "DATA SOURCE=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SID = orcl)));PERSIST SECURITY INFO=True;USER ID=test;PASSWORD=123;";
            string SQL_cmd = "select * from Products where id=:id and type=:product_type ";

            using (OracleConnection conn = new OracleConnection(conn_str))
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }

                OracleCommand cmd = new OracleCommand(SQL_cmd, conn);
                //BindByName預設為false,SQL會依照順序代入參數
                //若設為true時,則依參數名稱代入參數
                cmd.BindByName = true;

                //加入參數
                cmd.Parameters.Clear();
                cmd.Parameters.Add("id", "10");
                cmd.Parameters.Add("product_type", "desktop");

                OracleDataAdapter DataAdapter = new OracleDataAdapter();
                DataAdapter.SelectCommand = cmd;

                DataSet ds = new DataSet();
                DataAdapter.Fill(ds);  

                //查詢到的資料都存在ds中了
            }
        }
    }
}

先給您一個方向,之後可以自行嘗試其他功能

oracle官方文件: https://docs.oracle.com/database/121/ODPNT/client.htm#ODPNT0008
每個class點進去都有簡介與範例程式能參考

備註:
oracle提供的Oracle.ManagedDataAccess,DB最低版本只支援到10.2
如果要連接比10.2更早的版本的話,須改用Oracle.DataAccess


另外,賽門大提到的微軟提供的ODBC driver,微軟官方已不建議繼續使用
在未來的版本這項功能將被移除
參考:http://blog.darkthread.net/post-2010-05-14-bye-ado-net-oracleclient.aspx

1
尼克
iT邦高手 1 級 ‧ 2018-02-12 09:30:18

關鍵字 "aps.net c# oracle"
例如:在.net存取Oracle資料庫
其它請自己研究囉!

我要發表回答

立即登入回答