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;
}
--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;
}
相关文章推荐
- asp.net获取存储过程的输出参数
- asp.net获取存储过程的输出参数
- asp.net获取存储过程的输出参数
- asp.net 调用带有输出参数的存储过程
- asp.net实现调用带有输出参数的存储过程实例
- [导入]asp.net调用带有输入和输出参数的存储过程
- asp.net 存储过程 输出参数 取不到值
- asp.net 操作带输入输出参数的分页存储过程(二)
- 取的存储过程的返回值和输出参数(asp.net 和vb)
- asp.net 操作带输入输出参数的分页存储过程(—)
- 【ASP.NET开发】ADO.NET调用带输出参数的存储过程 分类: ASP.NET 2012-09-10 21:16 1261人阅读 评论(1) 收藏
- asp程序调用SQL Server的存储过程,获取不到输出参数的值
- ADO.NET 快速入门(三):从存储过程获取输出参数
- asp程序调用SQL Server的存储过程,获取不到输出参数的值
- asp.net实现调用带有输出参数的存储过程实例
- ADO.NET 快速入门(三):从存储过程获取输出参数
- ASP.NET 获取存储过程的返回值
- asp.net使用返回参数的存储过程
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数