亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

asp.net中調用oracle存儲過程的方法

2020-01-24 01:33:21
字體:
來源:轉載
供稿:網友

存儲過程(Stored Procedure)是在大型數據庫系統中,一組為了完成特定功能的SQL 語句集,存儲在數據庫中經過第一次編譯后再次調用不需要再次編譯,用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執行它。

存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。

不多說了,本文通過兩種方法介紹asp.net中調用oracle存儲過程的方法,具體內容請看下面代碼。

調用oracle存儲過程方法一:

ORACLE代碼

CREATE OR REPLACE PROCEDURE gd_CURSOR(MYCS1 OUT SYS_REFCURSOR,MYCS2 OUT SYS_REFCURSOR,a out varchar)asBEGIN a:='test'; OPEN MYCS1 FOR SELECT 1 from dual; OPEN MYCS2 FOR SELECT 2 from dual;END;

C#代碼

 

 /// <summary> /// 執行oracle存儲過程返回多個結果集 /// </summary> /// <param name="strProcName">存儲過程名稱</param> /// <param name="ResultCount">返回個數</param> /// <param name="paras">參數</param> /// <returns>任意對象數組</returns> public object[] ExcuteProc_N_Result(string strProcName, int ResultCount, params OracleParameter[] paras) {  using (OracleConnection conn = new OracleConnection("User ID=用戶名;Password=密碼;Data Source=數據庫;"))  {  OracleCommand cmd = new OracleCommand(strProcName, conn);  if (paras != null && paras.Length > 0)  {   for (int j = 0; j < paras.Length; j++)   {   if (paras[j].Value == null)   {    paras[j].Value = DBNull.Value;   }   }  }  cmd.Parameters.AddRange(paras);  cmd.CommandType = CommandType.StoredProcedure;  conn.Open();  cmd.ExecuteNonQuery();  int i = 0;  //int nOutputParametersCount = 0;  object[] objResult = new object[ResultCount];  foreach (OracleParameter p in cmd.Parameters)  {   if (p.Direction == ParameterDirection.Output || p.Direction == ParameterDirection.InputOutput)   {   if (p.Value is OracleDataReader)   {    OracleDataReader reader = p.Value as OracleDataReader;    objResult[i++] = ConvertDataReaderToDataTable(reader);   }   else   {    objResult[i++] = p.Value;   }   }  }  return objResult;  } } /// <summary>  /// 將DataReader 轉為 DataTable  /// </summary>  /// <param name="DataReader">OleDbDataReader</param>  protected DataTable ConvertDataReaderToDataTable(OracleDataReader reader) {  DataTable objDataTable = new DataTable("TmpDataTable");  try  {  int intFieldCount = reader.FieldCount;//獲取當前行中的列數;  for (int intCounter = 0; intCounter <= intFieldCount - 1; intCounter++)  {   objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter));  }  //populate datatable   objDataTable.BeginLoadData();  //object[] objValues = new object[intFieldCount -1];   object[] objValues = new object[intFieldCount];  while (reader.Read())  {   reader.GetValues(objValues);   objDataTable.LoadDataRow(objValues, true);  }  reader.Close();  objDataTable.EndLoadData();  return objDataTable;  }  catch (Exception ex)  {  throw new Exception("轉換出錯出錯!", ex);  } }

調用方法

OracleParameter[] oracleParameter = new OracleParameter[]{new OracleParameter("MYCS1",OracleType.Cursor),new OracleParameter("MYCS2",OracleType.Cursor),new OracleParameter("a",OracleType.VarChar,200),};oracleParameter[0].Direction = ParameterDirection.Output;oracleParameter[1].Direction = ParameterDirection.Output;oracleParameter[2].Direction = ParameterDirection.Output;object[] xxx = ExcuteProc_N_Result("gd_CURSOR", 3, oracleParameter);

調用oracle存儲過程方法二:

存儲過程結構如下:

Create or Replace Procedure xx_yy( i_OrderID in number, i_ReturnValue out number)is v_RealValue number; v_TotalValue number; v_AdvendorID number;begin 自己寫就行end;

下面講一下調用:

表結構

create table ORDERTABLE( ORDERID NUMBER not null, TEXT NUMBER not null)

存儲過程

( i_OrderID in number, i_ReturnValue out number)is spass ordertable.text%type;begin select text into spass from ordertable where orderid=i_OrderID;  i_ReturnValue:=spass; exception when no_data_found then i_ReturnValue:=-1; end;

源碼:

using System.Data .OracleClient ;//(別忘了添加)OracleConnection Oraclecon = new OracleConnection ("Password=dloco;User ID=dloco;Data Source=dloco;");  OracleCommand myCMD = new OracleCommand();  OracleParameter[] parameters = { new OracleParameter("i_OrderID", OracleType.Number, 10),new OracleParameter("i_ReturnValue",OracleType.Number,10 )};  parameters[0].Value = 1;  parameters[1].Direction = ParameterDirection.Output;  myCMD.Connection = Oraclecon;  myCMD.CommandType = CommandType.StoredProcedure;  myCMD.CommandText = "dloco.xx_yy";  myCMD.Parameters .Add (parameters[0]);  myCMD.Parameters .Add (parameters[1]);  myCMD.Connection.Open();    myCMD.ExecuteNonQuery();      string result=myCMD.Parameters["i_ReturnValue"].Value.ToString();  MessageBox.Show (result);  Oraclecon.Close();

以上就是asp.net中調用oracle存儲過程的全部內容,希望對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩国产欧美区| 日韩黄色在线免费观看| 精品视频久久久久久| 日韩av电影手机在线| 日韩精品中文字幕在线| 亚洲欧美日韩天堂| 日韩精品极品在线观看播放免费视频| 91在线高清免费观看| 国产精品亚洲视频在线观看| 成人黄色片网站| 亚洲一区二区在线播放| 欧美亚洲视频在线看网址| 伦伦影院午夜日韩欧美限制| 91沈先生作品| 欧美三级免费观看| 久久亚洲春色中文字幕| 91久久国产综合久久91精品网站| 中文字幕亚洲字幕| 欧美理论电影在线观看| 欧美孕妇孕交黑巨大网站| 国产精自产拍久久久久久蜜| 精品少妇一区二区30p| 日韩欧美亚洲范冰冰与中字| 亚洲热线99精品视频| 青青草原成人在线视频| 97色伦亚洲国产| 国产91在线播放| 96精品久久久久中文字幕| 久久不射热爱视频精品| 欧美成人性色生活仑片| 国产精品久久网| 日韩av综合网| 2019av中文字幕| 日韩视频免费观看| 91亚洲精品久久久久久久久久久久| 精品国产91久久久| 欧美一乱一性一交一视频| 国产91精品视频在线观看| 日韩成人久久久| 亚洲精品自拍视频| 久久久97精品| 91免费精品视频| 欧美视频不卡中文| 国产精品欧美一区二区| 国产精品稀缺呦系列在线| 成人激情视频在线| wwwwwwww亚洲| 精品国产乱码久久久久酒店| 欧美精品激情视频| 国产精品美女久久久久av超清| 国产精品免费视频久久久| 亚洲国产精品va在线| 亚洲视频视频在线| 成人信息集中地欧美| 亚洲国产精品免费| 在线播放国产一区二区三区| 日韩欧美在线网址| 欧美在线亚洲在线| 色偷偷噜噜噜亚洲男人| 欧美成人国产va精品日本一级| 精品久久久久久久久久国产| 亚洲一区美女视频在线观看免费| 欧美精品久久久久久久免费观看| 成人国产精品久久久久久亚洲| 亚洲欧美国产精品专区久久| 国产精品激情av在线播放| 亚洲性视频网站| 亚洲a级在线播放观看| 国产精品久久久久福利| 亚洲成人久久电影| 国产精品久久久久久久app| 91免费高清视频| 麻豆国产精品va在线观看不卡| 国产日韩欧美日韩大片| 欧美日韩在线观看视频小说| 日韩精品在线第一页| 久操成人在线视频| 国产精品视频公开费视频| 久久久久久久久久久亚洲| 热门国产精品亚洲第一区在线| 欧美极品欧美精品欧美视频| 日韩成人免费视频| 亚洲激情视频网| 亚洲自拍偷拍在线| 国产精品高清在线| 日韩性生活视频| 92看片淫黄大片欧美看国产片| 亚洲精品自拍视频| 亚洲高清福利视频| 欧美日韩国产精品一区二区三区四区| 亚洲国产天堂网精品网站| 精品福利在线观看| 色777狠狠综合秋免鲁丝| 欧美日韩免费区域视频在线观看| 久久人人爽人人爽人人片av高清| 亚洲丁香久久久| 欧美激情videoshd| 奇门遁甲1982国语版免费观看高清| 亚洲精品影视在线观看| 欧美极品在线播放| 精品视频在线播放色网色视频| 国产精品视频久久| 黑人与娇小精品av专区| 久久亚洲精品视频| 91亚洲精品在线| 亚洲自拍高清视频网站| 精品久久久久久久久久| 亚洲a在线播放| 亚洲欧美激情视频| 久久97久久97精品免视看| 国产日韩欧美电影在线观看| 欧美日韩免费看| 欧美激情一区二区三区成人| 国产成+人+综合+亚洲欧洲| 日韩av网站大全| 亚洲欧美一区二区三区四区| 欧美在线亚洲一区| 91亚洲精华国产精华| 欧美色播在线播放| 欧美成人精品一区二区三区| 国产精品久久电影观看| 国产精品美女免费| 国产成人精品网站| 久久久久久九九九| 亚洲人精品午夜在线观看| 国产91在线视频| 日韩精品免费一线在线观看| 色七七影院综合| 欧美激情一级欧美精品| 欧美国产高跟鞋裸体秀xxxhd| 日韩人在线观看| 亚洲美女性视频| 久久激情视频久久| 日本免费久久高清视频| 中文字幕9999| 日韩中文字幕在线| 久久久国产精品免费| 精品人伦一区二区三区蜜桃免费| 色多多国产成人永久免费网站| 久久免费成人精品视频| 国产欧美一区二区| 久久久精品在线| 精品少妇一区二区30p| 亚洲成年人在线播放| 亚洲a一级视频| 久久福利视频导航| 亚洲网站在线看| …久久精品99久久香蕉国产| 亚洲va男人天堂| 欧美性猛交丰臀xxxxx网站| 国产日韩在线免费| 久久精品99久久久久久久久| 中文字幕一区电影| 欧美日韩亚洲网| 久久人人97超碰精品888| 中文欧美在线视频| 亚洲免费av电影| 亚洲第一级黄色片| 成人激情在线观看| 精品中文视频在线| 大量国产精品视频| 国产91色在线| 欧洲精品毛片网站| 成人xvideos免费视频|