您的位置:首页 > 编程语言 > ASP

asp.net获取存储过程的输出参数

2009-03-08 22:05 375 查看
一、假设存储过程如下

--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

二、获取输出参数的代码

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: