欢迎来到天天文库
浏览记录
ID:14168939
大小:46.50 KB
页数:14页
时间:2018-07-26
《c#调用oracle数据库的存储过程并返回结果集》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#调用Oracle数据库的存储过程并返回结果集一数据表:student(studentidvarchar2studentnamevarchar2)数据: studentidstudentname 001 001 002 002 002 003第2步建包:CREATEORREPLACEPACKAGEPKG_SELECT_STUDENTASTYPET_CURSORISREFCURSOR;PROCEDUREGetusername(us_idINVarchar2,cur_nameOUTT_CURSOR);第3步建包体:CREATEORREPLACEPACK
2、AGE BODYPKG_SELECT_STUDENTASPROCEDUREGetusername(us_idINvarchar2,cur_nameOUTT_CURSOR)ISBEGINOPENcur_nameFORSELECT*FROMstudentWHEREstudentid=us_id;ENDGetusername;ENDPKG_select_student;第4步我的webform.cs文件:在文本框输入ID,点击按钮查询,有多条数据填充显示在gatagrid里面privatevoidButton3_Click(objectsender,System.EventArg
3、se){stringusid=this.TextBox1.Text.Trim();Selectopst=newSelectop();this.DataGrid1.DataSource=st.GetSelectAll(usid);this.DataGrid1.DataBind();}publicDataSetGetSelectAll(stringusid){OracleConnectioncon=DBoracle.CreateConnection();OracleCommandcommand=newOracleCommand();DataSetds=newDataSet();
4、try{command.Connection=con;command.CommandText="PKG_select_student.Getusername";command.CommandType=CommandType.StoredProcedure;command.Parameters.Add("us_id",OracleType.VarChar,10).Value=usid;command.Parameters.Add("cur_name",OracleType.Cursor);command.Parameters["cur_name"].Direction=Par
5、ameterDirection.Output;OracleDataAdapteradapter=newOracleDataAdapter(command);con.Open();//command.ExecuteNonQuery();//adapter.SelectCommand=command;adapter.Fill(ds);}catch(System.Exceptionex){throwex;}finally{con.Close();command.Dispose();//adapter.Dispose();}returnds;}oracle的存储过程返回记录集,关键
6、之处是要用游标。关于数据库的游标(cursor)大家肯定都接触不少,我们能通过OPEN,FETCH,CLOSE操作控制游标进行各种方便的操作,这方面的例子我就不在重复了。我们目前要介绍的是游标变量(cursorvariable)。类似游标,游标变量也是指向一个查询结果集的当前行。不同的是,游标变量能为所有类型相似(type-compatible)的查询打开,而并不是绑定到某一个特定的查询。通过游标变量,你能在数据库的数据提取中获得更多的方便。首先是建立表: CREATETABLELIHUAN.BILL_POINTS ( POINTS_IDNUMBER(10,0
7、)NOTNULL, CUSTOMER_IDNUMBER(10,0)NOTNULL, BILL_POINT_NONUMBER(2,0)DEFAULT1NOTNULL, CONSTRAINTPK_BILL_POINTSPRIMARYKEY(POINTS_ID) ) /其次,建PACKAGE CREATEORREPLACEPACKAGELIHUAN.YY_PKG_BILL_POINT_NO/*取得用户的所有计费电序号*/ IS TYPET_CURSORISREFCURSOR; PROC
此文档下载收益归作者所有