首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 連接 Oracle 資料庫三大經典模式完整代碼範例

     編輯:關於C#

使用 System.Data.OracleClient 連接 Oracle,涵蓋 **DataSet 離線模式**、**DataReader 串流模式**、**Command 執行非查詢** 三大核心場景,代碼開箱即用。

前置準備

// 1. 專案引用 System.Data.OracleClient.dll
// 2. 頂部引入命名空間
using System.Data.OracleClient;

模式一:DataSet 離線填充(適合綁定 UI、多次遍歷)

// 建立連接
OracleConnection oraCon = new OracleConnection("user id=112;data source=wmatech;password=112");
// 建立適配器
OracleDataAdapter oraDap = new OracleDataAdapter("select * from actor", oraCon);
// 填充 DataSet
DataSet ds = new DataSet();
oraDap.Fill(ds);
// 取首個 DataTable
DataTable dt = ds.Tables[0];
int rowCount = dt.Rows.Count;
// 綁定 DataGrid
DataGrid1.DataSource = dt;
DataGrid1.DataBind();
  • Fill 會自動開啟/關閉連接,無需手動 Open/Close。
  • 適合資料量中等、需游標式操作或綁定控件的場景。

模式二:DataReader 串流讀取(高性能、唯讀、順向)

OracleConnection oraCon = new OracleConnection("user id=112;data source=wmatech;password=112");
OracleCommand oraCmd = new OracleCommand("select * from actor", oraCon);
oraCon.Open();
OracleDataReader oraRD = oraCmd.ExecuteReader();
string html = "";
while (oraRD.Read()) {
    html += oraRD[0] + "   " + oraRD[1] + "   " + oraRD[2] + "
"; } oraRD.Close(); // 必須關閉 Reader oraCon.Close(); // 釋放連接 Response.Write(html);
  • ExecuteReader 返回 OracleDataReader,**必須显式關閉** Close() 才能釋放連接池資源。
  • 單向、唯讀、記憶體佔用極低,適合大數據量逐行處理。

模式三:Command 執行 DML(Insert/Update/Delete)

OracleConnection oraCon = new OracleConnection("user id=112;data source=wmatech;password=112");
OracleCommand oraCmd = new OracleCommand("update actor set name='123453' where id='admin'", oraCon);
oraCon.Open();
int affectedRows = oraCmd.ExecuteNonQuery();  // 返回影響行數
Response.Write(affectedRows.ToString());
oraCon.Close();
  • ExecuteNonQuery 用於非查詢 SQL,返回受影響行數(int)。
  • 參數化查詢建議使用 oraCmd.Parameters.Add 防注入、提升效能。

進階:交易控制

OracleConnection oraCon = new OracleConnection(connStr);
oraCon.Open();
OracleTransaction tx = oraCon.BeginTransaction();
try {
    OracleCommand cmd = oraCon.CreateCommand();
    cmd.Transaction = tx;
    cmd.CommandText = "update ..."; cmd.ExecuteNonQuery();
    cmd.CommandText = "insert ..."; cmd.ExecuteNonQuery();
    tx.Commit();
} catch {
    tx.Rollback(); throw;
} finally {
    oraCon.Close();
}

OracleTransaction 確保多條 SQL 原子性,**生產環境批量寫入必用**。

連接字串關鍵屬性

掌握三大模式與交易控制,即可應對 90% 以上的 Oracle 存取場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
屬性說明
User ID / Password認證憑證
Data SourceTNS 別名或 EZ Connect 字串
Pooling連接池開關 (預設 true)
Min/Max Pool Size池大小限制
Connection Lifetime連接生存時間(秒)