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. list<map>排序

    @Test public void test_when_test1() throws Exception { String[] strs = {"e", "ee" ...

  2. Cattle学习笔记

    Cattle学习笔记  

  3. 猎豹浏览器(chrome内核)屏蔽视频广告

    1.基于猎豹浏览器(原则上chrome内核浏览器都可以) 2.下载插件Adblock Plus,下载地址:http://chromecj.com/productivity/2014-07/24/dow ...

  4. Mysql/Mariadb 升级注意事项

    因需要使用到分区表,在业务不中断的情况下,可以新增分区,需要将原来的Mariadb10.1.25版本升级到Mariadb10.3.8. 1.升级步骤如下 1)新搭建Mariadb10.3.8版本的DB ...

  5. jenkins自动化打包部署

    请参考: http://m.blog.csdn.net/article/details?id=50518959 1.启动 jenkins.war ,打开首页  192.168.158.129:8080 ...

  6. torch7 安装 并安装 hdf5模块 torch模块 nn模块 (系统平台为 ubuntu18.04 版本)

    今年的CCF A会又要开始投稿了,实验室的师弟还在玩命的加实验,虽然我属于特殊情况是该从靠边站被老板扶正但是实验室的事情我也尽力的去帮助大家,所以师弟在做实验的时候遇到了问题也会来问问我,这次遇到的一 ...

  7. Texas Instruments matrix-gui-2.0 hacking -- json.txt

    { "main_menu": { "apps": [ { "Name":"Profiling", ", &qu ...

  8. php curl批处理

    php模拟多线程用到curl库,这个库很强大,可以做好多事,比如模拟登陆,文件上传/下载,数据采集等. 下面是我的代码,很简单,有些还功能还不会用. <?php $node_urls=array ...

  9. PR5

    修改字幕的两种方式

  10. RequireJs 与 SeaJs的相同之处与区别

    相同之处: RequireJS 和 Sea.js 都是模块加载器,倡导模块化开发理念,核心价值是让 JavaScript 的模块化开发变得简单自然. 不同之处: 定位有差异.RequireJS 想成为 ...