熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

用ODP.NET執行SQL讀取數據庫記錄的方法

2013-11-13 15:36:14  來源: Oracle 

  本文我們通過一個Oracle提供的示例來講解利用利用ODPNET 執行SQL語句訪問數據庫時設置參數
  首先創建一個C#應用程序為了簡單和方便可以創建一個控制台程序
  然後第一件事是添加對Oracle ODPNET的引用打開項目的解決方案管理頁然後在引用目錄上點右鍵並選擇添加引用菜單選擇ORACLE_HOME\bin\OracleDataAccesssdll
  為了能夠使用ODPNET 我們在程序前應該引入相關的命名空間
  using OracleDataAccessClient;
  using OracleDataAccessTypes;
  
  首先需要建立到數據庫的連接在上一文章中已經講過這方面的基本知識
  
  接下來的工作是建立表SQL語句為CREATE TABLE multimedia_tab(thekey NUMBER() PRIMARY KEY story CLOB sound BLOB)
  
  然後插入一條記錄進行測試SQL語句為INSERT INTO multimedia_tab values(This is a long story Once upon a time )
  
  建表和插入記錄都使用OracleCommand 對象的 ExecuteNonQuery方法來執行SQL 語句
  
  在ODPNET 中使用參數的方法為
  ◎通過SQL語句創建一個OracleCommand在SQL語句中參數使用::來代替分別表示第一個第二個參數
  ◎在OracleCommand對象中添加參數
  ◎設置參數的值
  ◎調用OracleCommand的ExecuteNonQuery執行SQL語句
  ◎從參數對象中得到返回的值
  
  下面是代碼
  // 創建OracleCommand 對象
  OracleCommand cmd = new OracleCommand(
    begin select story into : from multimedia_tab where thekey = ; end;);
  cmdConnection = con;
  
  //把命令類型設置為Text表示執行SQL語句
  cmdCommandType = CommandTypeText;
  
  // 添加參數第一個參數表示參數名稱第二個參數表示參數類型
  OracleParameter param = cmdParametersAdd(clobdata
    OracleDbTypeClob);
  
  // 設置參數為輸出類型如果是輸入參數則設置為ParameterDirectionInputOutput
  paramDirection = ParameterDirectionOutput;
  
  // Execute command
  try
  {
    // 執行SQL語句
    // 如果是輸入參數那麼這時SQL中的: 被替換為OracleParameter param 對象所代表的值
    cmdExecuteNonQuery();
    // 因為參數是輸出參數所以可以通過得到參數的值來獲取SQL語句中參數所表示的值
    string lob_data = (string) ((OracleClob)(cmdParameters[]Value))Value;
  
    // 顯示結果
    ConsoleWriteLine(Data is: + lob_data);
  }
  catch (Exception e)
  {
    ConsoleWriteLine(eMessage);
  }
  
  在執行設置了參數的SQL語句時可以使用ExecuteReader ExecuteNonQuery ExecuteScalar 來執行SQL語句
  
  參數的類型可以為InputOutputOutputReturnValue
  
  
  在ODPNET中還有一項功能就是利用數組綁定到參數上來一次性插入多個記錄這裡講一下多個記錄同時插入時如何綁定一個數組到參數上
  
  // 設置數組
  int[] myArrayDeptNo = new int[]{ };
  
  // 創建OracleCommand 對象
  cmdCommandText = insert into dept(deptno) values (:deptno);
  // 設置數組大小
  cmdArrayBindCount = ;
  
  // 創建參數
  OracleParameter prm = new OracleParameter(deptno OracleDbTypeInt);
  prmDirection = ParameterDirectionInput;
  prmValue   = myArrayDeptNo;
  
  // 添加參數到OracleCommand對象中
  cmdParametersAdd(prm);
  
  // 執行這時候有三條記錄被插入
  cmdExecuteNonQuery();
  
  
   ::otn 對內容進行了修改
  ------------------------簽----名----
  $)
    movb  $x%ah
    int  $x
    movw  %ax()
    movw  $SYSSEG %ax
From:http://tw.wingwit.com/Article/program/Oracle/201311/16992.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.