新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:在.net中如何把调用存储过程代码写入数据连接层中

在.net中如何把调用存储过程代码写入数据连接层中

新客网 XKER.COM 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();//执行存储过程

}

}

}

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐