Enterprise Library 2.0系列:如何获取存储过程的output参数值?

Sql存储过程:
    ALTER PROCEDURE dbo.GetSum 
    (
        
@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();

  这段时间一直在学习 Enterprise Library 中的“Data Access Application Block”,常用的功能基本上都学会了。下一步,准备学习其他几个“Application Block”!鼓励一下自己:再接再厉!
posted @ 2006-09-18 22:22  jeky  阅读(1109)  评论(1编辑  收藏  举报
友情链接:逗死了笑话网 | 网络记事本