国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

用ODP.NET執(zhí)行SQL讀取數(shù)據(jù)庫記錄的方法

2024-07-21 02:34:32
字體:
供稿:網(wǎng)友

  本文我們通過一個(gè)Oracle提供的示例來講解利用利用ODP.NET 執(zhí)行SQL語句訪問數(shù)據(jù)庫時(shí)設(shè)置參數(shù)。
  首先創(chuàng)建一個(gè)C#應(yīng)用程序,為了簡(jiǎn)單和方便可以創(chuàng)建一個(gè)控制臺(tái)程序。
  然后第一件事是添加對(duì)Oracle ODP.NET的引用。打開項(xiàng)目的解決方案治理頁,然后在引用目錄上點(diǎn)右鍵并選擇添加引用菜單。選擇ORACLE_HOME/bin/Oracle.Dataaccesss.dll。
  為了能夠使用ODP.NET 我們?cè)诔绦蚯皯?yīng)該引入相關(guān)的命名空間。
  using Oracle.DataAccess.Client;
  using Oracle.DataAccess.Types;
  
  首先需要建立到數(shù)據(jù)庫的連接,在上一文章中已經(jīng)講過這方面的基本知識(shí)。
  
  接下來的工作是建立表,SQL語句為:CREATE TABLE multimedia_tab(thekey NUMBER(4) PRIMARY KEY, story CLOB, sound BLOB)
  
  然后插入一條記錄進(jìn)行測(cè)試,SQL語句為:INSERT INTO multimedia_tab values(1,'This is a long story. Once upon a time ...','656667686970717273747576777879808182838485')
  
  建表和插入記錄都使用OracleCommand 對(duì)象的 ExecuteNonQuery方法來執(zhí)行SQL 語句。
  
  在ODP.NET 中使用參數(shù)的方法為:
  ◎通過SQL語句創(chuàng)建一個(gè)OracleCommand,在SQL語句中參數(shù)使用:1,:2來代替,分別表示第一個(gè),第二個(gè)參數(shù)。
  ◎在OracleCommand對(duì)象中添加參數(shù)。
  ◎設(shè)置參數(shù)的值。
  ◎調(diào)用OracleCommand的ExecuteNonQuery執(zhí)行SQL語句。
  ◎從參數(shù)對(duì)象中得到返回的值。
  
  下面是代碼:
  // 創(chuàng)建OracleCommand 對(duì)象
  OracleCommand cmd = new OracleCommand(
    "begin select story into :1 from multimedia_tab where thekey = 1; end;");
  cmd.Connection = con;
  
  //把命令類型設(shè)置為Text,表示執(zhí)行SQL語句
  cmd.CommandType = CommandType.Text;
  
  // 添加參數(shù),第一個(gè)參數(shù)表示參數(shù)名稱,第二個(gè)參數(shù)表示參數(shù)類型,
  OracleParameter param = cmd.Parameters.Add("clobdata",
    OracleDBType.Clob);
  
  // 設(shè)置參數(shù)為輸出類型,假如是輸入?yún)?shù)則設(shè)置為:ParameterDirection.InputOutput
  param.Direction = ParameterDirection.Output;
  
  // Execute command
  try
  {
    // 執(zhí)行SQL語句
    // 假如是輸入?yún)?shù),那么這時(shí)SQL中的:1 被替換為OracleParameter param 對(duì)象所代表的值
    cmd.ExecuteNonQuery();
    // 因?yàn)閰?shù)是輸出參數(shù),所以可以通過得到參數(shù)的值來獲取SQL語句中參數(shù)所表示的值
    string lob_data = (string) ((OracleClob)(cmd.Parameters[0].Value)).Value;
  
    // 顯示結(jié)果
    Console.WriteLine("Data is: " + lob_data);
  }
  catch (Exception e)
  {
    Console.WriteLine(e.Message);
  }
  
  在執(zhí)行設(shè)置了參數(shù)的SQL語句時(shí)可以使用ExecuteReader 、ExecuteNonQuery 、ExecuteScalar 來執(zhí)行SQL語句。
  
  參數(shù)的類型可以為:InputOutput、Output、ReturnValue 。
  
  
  在ODP.NET中還有一項(xiàng)功能,就是利用數(shù)組綁定到參數(shù)上來一次性插入多個(gè)記錄,這里講一下多個(gè)記錄同時(shí)插入時(shí)如何綁定一個(gè)數(shù)組到參數(shù)上。
  
  // 設(shè)置數(shù)組
  int[] myArrayDeptNo = new int[3]{10, 20, 30};
  
  // 創(chuàng)建OracleCommand 對(duì)象
  cmd.CommandText = "insert into dept(deptno) values (:deptno)";
  // 設(shè)置數(shù)組大小
  cmd.ArrayBindCount = 3;
  
  // 創(chuàng)建參數(shù)
  OracleParameter prm = new OracleParameter("deptno", OracleDbType.Int32);

  prm.Direction = ParameterDirection.Input;
  prm.Value   = myArrayDeptNo;
  
  // 添加參數(shù)到OracleCommand對(duì)象中
  cmd.Parameters.Add(prm);
  
  // 執(zhí)行,這時(shí)候有三條記錄被插入
  cmd.ExecuteNonQuery();
  
  
  2003-11-17 14:34:01otn 對(duì)內(nèi)容進(jìn)行了修改
  ------------------------簽----名----
  $-)
    movb  $0x88,%ah
    int  $0x15
    movw  %ax,(02)
    movw  $SYSSEG, %ax

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 明水县| 米泉市| 博白县| 赣州市| 屏东县| 北川| 蓬安县| 丘北县| 古田县| 沙田区| 格尔木市| 平舆县| 永川市| 芒康县| 香格里拉县| 湖南省| 略阳县| 长寿区| 宝坻区| 卓尼县| 布拖县| 本溪市| 罗田县| 巩义市| 台东市| 醴陵市| 都兰县| 塘沽区| 舟曲县| 天水市| 沈阳市| 武平县| 大渡口区| 双桥区| 丹阳市| 吉林市| 大荔县| 铅山县| 义乌市| 安塞县| 临沧市|