NET中调用存储过程(Output、Input)

.NET中调用存储过程(Output、Input)

带输入输出参数的存储过程

带输入输出参数的存储过程

create procedure itemCodes

@itemName1 varchar(50),

@sizeName1 varchar(50),

@itemCode varchar(5) output

as

select @itemCode=itemmap.ItemCode from itemmap inner join item on itemmap.ItemCode=item.ItemCode where(item.ItemName1=@itemName1 and item.SizeName1=@sizeName1)

go

程序清单1

static void ExecuteStoredProcedure(string itemName1,string sizeName1)

{

string strConn = "server=localhost;uid=sa;pwd=sa;database=PAT";

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

SqlCommand cmd = new SqlCommand("getItemCode", conn);

cmd.CommandType = CommandType.StoredProcedure;

//输入参数

SqlParameter param1 = new SqlParameter("@itemName1", SqlDbType.VarChar, 50);

param1.Value = itemName1;

cmd.Parameters.Add(param1);

//输入参数

SqlParameter param2 = new SqlParameter("@sizeName1", SqlDbType.VarChar, 50);

param2.Value = sizeName1;

cmd.Parameters.Add(param2);

//输出参数

SqlParameter param = new SqlParameter("@itemCode", SqlDbType.VarChar, 50);

param.Direction = ParameterDirection.Output;

cmd.Parameters.Add(param);

//执行存储过程

cmd.ExecuteNonQuery();

conn.Close();

//输出值

Console.WriteLine(param.Value);

}

程序清单2

static void ExecuteProcedure()

{

string strConn = "server=localhost;uid=sa;pwd=sa;database=PAT";

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

SqlCommand cmd = new SqlCommand("getItemCode", conn);

cmd.CommandType = CommandType.StoredProcedure;

SqlParameter[] parameters =

{

new SqlParameter("@itemName1",SqlDbType.VarChar,50),

new SqlParameter("@sizeName1",SqlDbType.VarChar,50),

new SqlParameter("@itemCode",SqlDbType.VarChar,50)

};

parameters[0].Value = "Chai";

parameters[1].Value = "";

parameters[2].Direction = ParameterDirection.Output;

foreach (var p in parameters)

{

cmd.Parameters.Add(p);

}

cmd.ExecuteNonQuery();

conn.Close();

//输出值

Console.WriteLine(parameters[2].Value);

}

NET中调用存储过程(Output、Input)的更多相关文章

  1. ASP.NET中调用存储过程方法

    两种不同的存储过程调用方法 为了突出新方法的优点,首先介绍一下在.NET中调用存储过程的“官方”方法.另外,本文的所有示例程序均工作于SqlServer数据库上,其它情况类似,以后不再一一说明.本文所 ...

  2. oracle中存储过程中调用存储过程

    存储过程中调用存储过程 create or replace package body PF_Role_Pack is procedure sp_GetPage_Role(pageSize_ in nu ...

  3. 在PL/SQL中调用存储过程--oracle

    在oracle10中写好了存储过程,代码如下: CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int, sE ...

  4. Asp.Net中调用存储过程并返回输出参数

    /// <summary> /// 调用存储过程返回参数 /// </summary> /// <param name="orderId">&l ...

  5. sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbname"。

    用sql server自带的消息队列service borker,调用存储过程中,执行了一个跨库的操作,先是用了一个用户,权限什么都给够了,但是一直提示 服务器主体 "user" ...

  6. MyBatis中调用存储过程和函数

    一.调用存储过程 1.首先在数据库中定义存储过程,定义的存储过程的代码如下: //定义存储过程 create or replace procedure pag_add(p1 varchar2,p2 v ...

  7. oracle 存储过程中调用存储过程

    create procedure sp_name() begin ……… end 比如: create procedure pro_showdbs() show datebase; end //用ex ...

  8. IBatis.Net学习笔记十三:在IBatis.Net中调用存储过程

    其实调用方式比较简单,主要也就是两种类型的存储过程:1.更新类型的存储过程2.查询类型的存储过程下面就来看看具体的调用方式:1.更新类型的存储过程sp_InsertAccount: CREATE PR ...

  9. C#中调用存储过程:带输入输出参数

    using (SqlConnection conn = new SqlConnection(this.GetConnectionString(this.WMPDBName))) { SqlComman ...

随机推荐

  1. DeepLearning (三) 预处理:主成分分析与白化

    [原创]Liu_LongPo 转载请注明出处 [CSDN]http://blog.csdn.net/llp1992 PCA算法前面在前面的博客中已经有介绍,这里简单在描述一下,更详细的PCA算法请参考 ...

  2. 关于const的一些注意事项

    1.const对象必须初始化,一旦创建其值就无法更改 2.默认情况下,const对象仅在文件内有效,若想在多个文件中使用同一个const对象,就是不在每个文件独立的定义一个const对象,可以进行如下 ...

  3. Effective C++阅读笔记

    条款1:视C++为一个语言联邦:C.Object-Oriented C++.Template C++.STLC++高效编程守则视情况而变化,取决于使用C++的哪一个部分 条款2:尽量以const,en ...

  4. Giter Link

    Giter Link Anton Chen https://github.com/antonchen Bear Zheng https://github.com/bearzlh Mac Directo ...

  5. Word2003文档窗口分成上下两个独立的窗口

    http://www.officezu.com/word/2003/index16.html 拆分窗口就是把一个Word2003文档窗口分成上下两个独立的窗口,从而可以通过两个Word2003文档窗口 ...

  6. influxdb基本操作

    名词解释 在具体的讲解influxdb的相关操作之前先说说influxdb的一些专有名词,这些名词代表什么. influxDB名词 database:数据库: measurement:数据库中的表: ...

  7. LARC Caffe笔记(二) 训练自己的img

    继看完 贺完结!CS231n官方笔记 上一次已经成功跑起caffe自带的例程,mnist和cifar10 但是终归用的是里面写好的脚本,于是打算训练自己的img 〇.目标 准备好food图片3类(出于 ...

  8. hacking a friend's Linux buzzer driver in OK335xS

    /**************************************************************************** * hacking a friend's L ...

  9. 【error】segmentation fault分析

    前言 调试代码的时候,可能会出现segmentation fault的bug,很难找到原因,在此总结一下可能的原因. SIGSEGV 原因分析 1.程序中的变量没有进行检查: 比如,没有对变量的大小进 ...

  10. c++ json 详解

    一. 使用jsoncpp解析json Jsoncpp是个跨平台的开源库,首先从http://jsoncpp.sourceforge.net/上下载jsoncpp库源码,我下载的是v0.5.0,压缩包大 ...