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

原创 2004年09月22日 14:45:00

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

      
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;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

测试结果: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();//执行存储过程

         }

     }

}

此代码已运行通过的,谢谢大家光顾tongue_smile.giftongue_smile.gif

C#中调用存储过程

1、没有参数没有返回值   2、有参数没有返回值  3、有参数有返回值     下面就这几种情况分别举例:1、没有参数没有返回值,象这种情况最简单。   存储过程   USE Nort...
  • ycl295644
  • ycl295644
  • 2015年05月05日 11:00
  • 5027

.net 调用Oracle存储过程

在.NET中调用Oracle9i存储过程经验总结(1)  在.NET中调用Oracle9i存储过程可以用多个数据提供者,比如OralceClient,OleDb。本文将用OralceClient为例。...
  • u010678947
  • u010678947
  • 2014年03月07日 12:38
  • 1558

EF和LINQ 调用存储过程

好久没有更新文章了,最近项目比较忙都没什么时间来分享最近的问题。 今天遇到一个超级傻逼的问题。C#中调用存储过程,自己code也10来年了,这应该是很简单的问题了。今天有2个新的api,一个只有1个参...
  • dz45693
  • dz45693
  • 2015年06月29日 23:15
  • 3870

C#二十六 使用Ado.Net调用存储过程

存储过程是连接式访问数据库的一种延伸,主要是通过命令对象调用数据库系统中的存储过程来完成的。存储过程可以带参数,也可以不带参数,可以返回结果页可以没有返回结果。存储过程执行速度快、允许模块化程序设计并...
  • zhangchen124
  • zhangchen124
  • 2016年05月07日 19:05
  • 2526

java调用存储过程 从spring中获取数据库连接

最近做的项目中有个统计分析的功能,里面需要多个表的数据汇总后作计算进行排名,就需要写很多SQL,于是乎想到用存储过程,调用一次后可以返回所有供计算使用的数据,中间遇到种种问题,现总结一二: 首先是ja...
  • u010953431
  • u010953431
  • 2017年03月28日 18:21
  • 582

Java代码调用存储过程和存储方法

准备一个oracle 的JDBC jar 包:ojdbc14_11g.jar 首先找到你的 oracle 安装位置,例如: 1.创建一个JDBC数据库连接工具类: package...
  • sinat_35626559
  • sinat_35626559
  • 2017年05月11日 23:07
  • 1561

数据库的连接方式、存储过程

连接方式:左关联、右关联、内关联、外关联、全关联 MySQL数据库只支持前三种。 左关联:左表为主表,显示左边全部的和右边与左边相同的 右关联:右表为主表,显示右边全部的和左边与右边相同的 内...
  • lengjinghk
  • lengjinghk
  • 2016年08月07日 08:30
  • 1014

C#中执行mysql数据库的存储过程

C#中执行mysql数据库的存储过程
  • Antares_SANTALEN
  • Antares_SANTALEN
  • 2016年07月01日 13:29
  • 2009

Excel使用ADO调用SQL Server存储过程

前期使用Excel做一个现场投票的小软件,问题出在查看投票按钮上,起初只是使用SELECT语句查询,一切正常;后期对于投票结果需要进行一些权重的计算,过程比较复杂,便想到把计算过程放在SQL Serv...
  • zhanghongju
  • zhanghongju
  • 2015年03月25日 20:32
  • 3727

JDBC执行存储过程的四种情况

本文主要是总结 如何实现 JDBC调用Oracle的存储过程,从以下情况分别介绍: [1]、只有输入IN参数,没有输出OUT参数[2]、既有输入IN参数,也有输出OUT参数,输出是简单值(非列表...
  • yczz
  • yczz
  • 2015年07月15日 14:07
  • 11992
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在.net中如何把调用存储过程代码写入数据连接层中
举报原因:
原因补充:

(最多只允许输入30个字)