可以使用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