C#呼叫Oracle儲存過程
Oracle分頁儲存過程如下:
--注意,在Oracle,儲存過程需要放在包下面
create or replace package PKG_split_Page is
TYPE p_cur1 IS REF CURSOR;
PROCEDURE proc_split_page
(
rowcountPerPage NUMBER, --每頁面記錄條數
indexNowPage NUMBER, --當前頁碼
tabName VARCHAR2, --分頁表名
totalRows OUT NUMBER, --總記錄數
totalPages OUT NUMBER, --總頁數
p_cursor OUT PKG_split_Page.p_cur1 --遊標,用於返回結果集
);
end PKG_split_Page;
C#呼叫儲存過程程式碼如下:
#region 分頁程式碼(返回資料表、總條數、總頁數等)
/// <summary>
/// 執行分頁
/// </summary>
/// <param name="tableName">需分頁表名(select查詢語句)</param>
/// <param name="paeSize">每頁記錄數</param>
/// <param name="indexNowPage">當前頁碼</param>
/// <param name="totalRows">引用引數,總記錄數</param>
/// <param name="totalPages">引用引數,總頁數</param>
/// <returns>分頁結果集</returns>
public DataTable Paging(string tableName, int paeSize, int indexNowPage, ref int totalRows, ref int totalPages)
{
try
{
//開啟連線
OpenOracleConnection();
//定義OracleCommand物件,設定命令型別為儲存過程
OracleCommand pOracleCMD = new OracleCommand("pkg_split_page.proc_split_page", conn);//Oracle裡面的(包.儲存過程)
pOracleCMD.CommandType = CommandType.StoredProcedure;//設定執行型別為儲存過程
//根據儲存過程的引數個數及型別生成引數物件
OracleParameter p1 = new OracleParameter("rowCountPerPage", OracleType.Number);//rowcountPerPage——每頁顯示的條數
OracleParameter p2 = new OracleParameter("indexNowPage", OracleType.Number);//indexNowPage——當前頁碼
OracleParameter p3 = new OracleParameter("tabName", OracleType.VarChar);//tabName——表名
OracleParameter p4 = new OracleParameter("totalRows", OracleType.Number);//totalRows——總記錄數(output)
OracleParameter p5 = new OracleParameter("totalPages", OracleType.Int16);//totalPages——總頁數(output)
OracleParameter p6 = new OracleParameter("p_cursor", OracleType.Cursor);
//設定引數的輸入輸出型別,預設為輸入
p1.Direction = ParameterDirection.Input;
p2.Direction = ParameterDirection.Input;
p3.Direction = ParameterDirection.Input;
p4.Direction = ParameterDirection.Output;
p5.Direction = ParameterDirection.Output;
p6.Direction = ParameterDirection.Output;
//對輸入引數定義初值,輸出引數不必賦值.
p1.Value = paeSize;
p2.Value = indexNowPage;
p3.Value = tableName;
//按照儲存過程引數順序把引數依次加入到OracleCommand物件引數集合中
pOracleCMD.Parameters.Add(p1);
pOracleCMD.Parameters.Add(p2);
pOracleCMD.Parameters.Add(p3);
pOracleCMD.Parameters.Add(p4);
pOracleCMD.Parameters.Add(p5);
pOracleCMD.Parameters.Add(p6);
//執行,把分頁結果集填入datatable中
OracleDataAdapter pOracleDataAdapter = new OracleDataAdapter(pOracleCMD);
DataTable datatable = new DataTable();
pOracleDataAdapter.Fill(datatable);
//在執行結束後,從儲存過程輸出引數中取得相應的值放入引用引數中以供程式呼叫
totalRows = int.Parse(p4.Value.ToString());
totalPages = int.Parse(p5.Value.ToString());
//關閉連線
CloseOracleConnection();
return datatable;
}
catch (Exception ex)
{
string error = ex.ToString();
return null;
}
}
#endregion
#region 開啟連線
/// <summary>
/// 關閉連線
/// </summary>
private void CloseOracleConnection()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
#endregion
#region 關閉連線
/// <summary>
/// 開啟連線
/// </summary>
private void OpenOracleConnection()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
}
#endregion
相關文章
- C#呼叫 oracle儲存過程C#Oracle儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- c#呼叫儲存過程小記C#儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 用java呼叫oracle儲存過程JavaOracle儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- 呼叫儲存過程儲存過程
- oracle goldengate 呼叫儲存過程案例OracleGo儲存過程
- Jsp中呼叫Oracle儲存過程JSOracle儲存過程
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- Winform呼叫儲存過程ORM儲存過程
- perl呼叫儲存過程儲存過程
- jdbc呼叫儲存過程JDBC儲存過程
- 用java呼叫oracle儲存過程總結JavaOracle儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- mysql儲存過程及c#呼叫標準版MySql儲存過程C#
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- PB中呼叫儲存過程儲存過程
- php呼叫mssql儲存過程PHPSQL儲存過程
- java中呼叫儲存過程Java儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- ibatis呼叫oracle儲存過程(極簡版)BATOracle儲存過程
- Hibernate呼叫oracle儲存過程的問題Oracle儲存過程
- 完整的分頁儲存過程以及c#呼叫方法儲存過程C#
- Oracle儲存過程Oracle儲存過程
- jsp中呼叫儲存過程JS儲存過程
- Spring mybatis 呼叫儲存過程SpringMyBatis儲存過程
- 用PHP呼叫MySQL儲存過程PHPMySql儲存過程
- c / c + + 呼叫mysql儲存過程MySql儲存過程
- 動態呼叫儲存過程 sample:儲存過程
- vb呼叫儲存過程的方法儲存過程
- 儲存過程呼叫其他模式的儲存過程需要注意的地方儲存過程模式
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程