Enterprise Library 2.0系列:如何得到存储过程的 ReturnValue 值?

  最近在学习Enterprise Library 2.0,在博客园看到了Terry和SHY520的文章,学到了很多知识。很感谢他们能把自己所学的知识分享给大家。以后,我也要养成一个写日志的好习惯,每天进步一点!

  
    ALTER PROCEDURE dbo.GetSumValue
    (
        
@IX int,
        
@IY int,
        
@IZ int
    )
    
AS
        
Return (@IX + @IY + @IZ);

        Database db = DatabaseFactory.CreateDatabase("CS_QuickStarts");
        DbCommand cmd 
= db.GetStoredProcCommand("GetSumValue");

        db.AddInParameter(cmd, 
"IX", DbType.Int32, 20);
        db.AddInParameter(cmd, 
"IY", DbType.Int32, 10);
        db.AddInParameter(cmd, 
"IZ", DbType.Int32, 25); // 用于普通添加类型的参数,参数名称不需要加“@”前缀
        db.AddParameter(cmd, "@ReturnVal", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null); // 用于返回值的参数名称,需要加@前缀

        db.ExecuteNonQuery(cmd); 
// 必须使用 ExecuteNonQuery 方法才可以得到 ReturnValue 值,不能使用 ExecuteReader 等
        int iReturnVal = Convert.ToInt32(cmd.Parameters["@ReturnVal"].Value);

        Response.Write(
"<br />返回值:" + iReturnVal);

        Response.End();


  感谢SHY520的日志《使用Data Access Application Block 得到存储过程的返回值》
posted @ 2006-09-08 13:17  jeky  阅读(751)  评论(0编辑  收藏  举报
友情链接:逗死了笑话网 | 网络记事本