在.net中如何把调用存储过程代码写入数据连接层中 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 在.net中如何把调用存储过程代码写入数据连接层中 (http://www.webasp.net/article/14/13419.htm) |
| -- 作者:未知 -- 发布日期: 2004-09-24 |
| Oracle方面
1.创建Oracle过程存储 create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2) as varparam varchar2(28); begin varparam:=paramin; paramout:=varparam|| paraminout; end; 2.测试过程存储 declare param_out varchar2(28); param_inout varchar2(28); begin param_inout:='ff'; proce_test('dd',param_out,param_inout); dbms_output.put_line(param_out); end; 测试结果:ddff C#方面 1.创建界面 类型 对象名 Text属性值 Button Button1 调用 Label Label1 A: Label Label2 B: Label Label3 input Label Label4 inputoutput Label Label5 TextBox TextBox1 TextBox TextBox2 2.显示代码 (1) 在WebForm4.aspx.cs文件 添加字段 private OraOprater mOra=null; //OraOprater 是数据连接层的类 在界面上双击“调用”按钮,编写如下代码: private void Button1_Click(object sender, System.EventArgs e) { mOra=new OraOprater(); Label5.Text=mOra.SpExeFor(TextBox1.Text,TextBox2.Text); //调用存储过程的方法 } (2) 在数据连接层中的代码(OraOprater.cs) 引用Oracle组件 using System; using System.Data; using System.Data.OracleClient; namespace WebApplication4 { public class OraOprater { private OracleConnection conn=null; private OracleCommand cmd=null; public OraOprater() { string mConn="data source=ora9i.ora.com;user id=ora;password=ora"; //连接数据库 conn=new OracleConnection(mConn); try { conn.Open(); cmd=new OracleCommand(); cmd.Connection=conn; } catch(Exception e) { throw e; } } public string SpExeFor(string m_A,string m_B) { //存储过程的参数声明 OracleParameter[] parameters={ new OracleParameter("paramin",OracleType.VarChar,20), new OracleParameter("paramout",OracleType.VarChar,20), new OracleParameter("paraminout",OracleType.VarChar,20) }; parameters[0].Value=m_A; parameters[2].Value=m_B; parameters[0].Direction=ParameterDirection.Input; parameters[1].Direction=ParameterDirection.Output; parameters[2].Direction=ParameterDirection.InputOutput; try { RunProcedure("proce_test",parameters); return parameters[1].Value.ToString(); } catch(Exception e) { throw e; } } private void RunProcedure(string storedProcName,OracleParameter[] parameters) { cmd.CommandText=storedProcName;//声明存储过程名 cmd.CommandType=CommandType.StoredProcedure; foreach(OracleParameter parameter in parameters) { cmd.Parameters.Add(parameter); } cmd.ExecuteNonQuery();//执行存储过程 } } } |
| webasp.net |