博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net获取存储过程的输出参数
阅读量:6082 次
发布时间:2019-06-20

本文共 2712 字,大约阅读时间需要 9 分钟。

 

这个其实很简单,只是学习到了就作个记录,也给不知道的人留个方便。

一、假设存储过程如下

--
region [dbo].[InsertArchive]
------------------------------------------------------------------------------------------------------------------------
--
Generated By:    wangzeng
using
CodeSmith
4.0
.
0.0
--
Template:        StoredProcedures.cst
--
Procedure Name: [dbo].[InsertArchive]
--
Date Generated: 2007年11月28日
------------------------------------------------------------------------------------------------------------------------
--
插入档案记录
ALTER PROCEDURE [dbo].[InsertArchive]
     @Name varchar(
50
),
     @Sex
int
,
     @PostID
int
,
     @OrgID
int
,
     @WorkTypeID varchar(
20
),
     @ArchivesID
int
OUTPUT //注意
AS
--
SET NOCOUNT ON
INSERT INTO [dbo].[Archives] (
     [Name],
     [Sex],
     [PostID],
     [OrgID],
     [WorkTypeID]
) VALUES (
     @Name,
     @Sex,
     @PostID,
     @OrgID,
     @WorkTypeID
)
SET @ArchivesID
=
SCOPE_IDENTITY()
--
endregion

 

二、获取输出参数的代码

/**/
///
<summary>
        
///
新增档案
        
///
</summary>
        
///
<param name="Name"></param>
        
///
<param name="Sex"></param>
        
///
<param name="OrgID"></param>
        
///
<param name="PostID"></param>
        
///
<param name="WorkID"></param>
        
///
<returns></returns>
        
public
int
InsertArchive(
string
Name,
int
Sex,
int
OrgID,
int
PostID,
string
WorkTypeID,
ref
int
ArchivesID) //注意 ref
        
{
             SqlCommand comm
=
new
SqlCommand(
"
InsertArchive
"
, conn.Conn);
             comm.CommandType
=
CommandType.StoredProcedure;
             comm.Parameters.Add(
"
@Name
"
, SqlDbType.VarChar,
50
);
             comm.Parameters[
"
@Name
"
].Value
=
Name;
             comm.Parameters[
"
@Name
"
].Direction
=
System.Data.ParameterDirection.Input;
             comm.Parameters.Add(
"
@Sex
"
, SqlDbType.Int,
4
);
             comm.Parameters[
"
@Sex
"
].Value
=
Sex;
             comm.Parameters[
"
@Sex
"
].Direction
=
System.Data.ParameterDirection.Input;
             comm.Parameters.Add(
"
@OrgID
"
, SqlDbType.Int,
4
);
             comm.Parameters[
"
@OrgID
"
].Value
=
OrgID;
             comm.Parameters[
"
@OrgID
"
].Direction
=
System.Data.ParameterDirection.Input;
             comm.Parameters.Add(
"
@PostID
"
, SqlDbType.Int,
4
);
             comm.Parameters[
"
@PostID
"
].Value
=
PostID;
             comm.Parameters[
"
@PostID
"
].Direction
=
System.Data.ParameterDirection.Input;
             comm.Parameters.Add(
"
@WorkTypeID
"
, SqlDbType.NVarChar,
20
);
             comm.Parameters[
"
@WorkTypeID
"
].Value
=
WorkTypeID;
             comm.Parameters[
"
@WorkTypeID
"
].Direction
=
System.Data.ParameterDirection.Input;
             comm.Parameters.Add(
"
@ArchivesID
"
, SqlDbType.Int,
4
);
             comm.Parameters[
"
@ArchivesID
"
].Value
=
ArchivesID;
             comm.Parameters[
"
@ArchivesID
"
].Direction
=
System.Data.ParameterDirection.Output;           //注意方向
            
            
if
(conn.Conn.State
==
ConnectionState.Closed)
                 conn.Conn.Open();
            
int
counts
=
comm.ExecuteNonQuery();
             ArchivesID
=
Int32.Parse(comm.Parameters[
"
@ArchivesID
"
].Value.ToString()); //关键的地方
            
if
(conn.Conn.State
==
ConnectionState.Open)
                 conn.Conn.Close();
            
return
counts;
         }
你可能感兴趣的文章
从地址栏输入url到页面显示的步骤
查看>>
iOS快速集成支付宝
查看>>
深入理解编译注解(五)RetentionPolicy.SOURCE 和 RetentionPolicy.CLASS区别讨论
查看>>
nosql数据库:mongodb,redis,memcached,其优缺点和使用应用场景
查看>>
移动端 输入框 如果类型是number,用户也可以输入汉字和字母
查看>>
Security
查看>>
【排序算法】基于交换的排序算法(冒泡排序和快速排序)
查看>>
iOS 地图定位 定位
查看>>
Matplotlib 画廊
查看>>
Node.js 服务器
查看>>
Redis 高级主题之HyperLogLog
查看>>
openstack从入门到放弃
查看>>
HDU 4803 Poor Warehouse Keeper (贪心+避开精度)
查看>>
JVM
查看>>
微服务学习笔记
查看>>
UDP示例
查看>>
数据结构12-AVL树
查看>>
iOS开发之BLE(一)——理论知识
查看>>
Sql 查询锁
查看>>
HTTP Protocol
查看>>