Enterprise Library 2.0系列:如何获取存储过程的output参数值?
Sql存储过程:
C#代码:
这段时间一直在学习 Enterprise Library 中的“Data Access Application Block”,常用的功能基本上都学会了。下一步,准备学习其他几个“Application Block”!鼓励一下自己:再接再厉!
ALTER PROCEDURE dbo.GetSum
(
@IX int,
@IY int,
@ISum int output
)
AS
Set @ISum = @IX + @IY;
RETURN
(
@IX int,
@IY int,
@ISum int output
)
AS
Set @ISum = @IX + @IY;
RETURN
C#代码:
// 创建 Database、DbCommand 对象
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetStoredProcCommand("GetSum");
// 添加参数
db.AddInParameter(cmd, "IX", DbType.Int32, 100);
db.AddInParameter(cmd, "IY", DbType.Int32, 280);
db.AddOutParameter(cmd, "ISum", DbType.Int32, 4); // 添加输出参数的时候,名称前不用加“@”
// 执行,并获取输出参数值
db.ExecuteNonQuery(cmd);
int iX = Convert.ToInt32(cmd.Parameters["@IX"].Value); // 获取参数值的时候,需要加上“@”前缀
int iY = Convert.ToInt32(cmd.Parameters["@IY"].Value);
int iSum = Convert.ToInt32(cmd.Parameters["@ISum"].Value);
// 输出到客户端
string strText = string.Format("{0} + {1} = {2}", iX, iY, iSum);
Response.Write(strText); // 显示结果:100 + 280 = 380
Response.End();
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetStoredProcCommand("GetSum");
// 添加参数
db.AddInParameter(cmd, "IX", DbType.Int32, 100);
db.AddInParameter(cmd, "IY", DbType.Int32, 280);
db.AddOutParameter(cmd, "ISum", DbType.Int32, 4); // 添加输出参数的时候,名称前不用加“@”
// 执行,并获取输出参数值
db.ExecuteNonQuery(cmd);
int iX = Convert.ToInt32(cmd.Parameters["@IX"].Value); // 获取参数值的时候,需要加上“@”前缀
int iY = Convert.ToInt32(cmd.Parameters["@IY"].Value);
int iSum = Convert.ToInt32(cmd.Parameters["@ISum"].Value);
// 输出到客户端
string strText = string.Format("{0} + {1} = {2}", iX, iY, iSum);
Response.Write(strText); // 显示结果:100 + 280 = 380
Response.End();
这段时间一直在学习 Enterprise Library 中的“Data Access Application Block”,常用的功能基本上都学会了。下一步,准备学习其他几个“Application Block”!鼓励一下自己:再接再厉!