寂寞部屋
- 关注互联网,关注生活
关注互联网,关注生活
2019年五月
« 4月    
 12345
6789101112
13141516171819
20212223242526
2728293031  
  • 日志总数:553 篇
  • 浏览总量:2,435,492 次
  • 运行天数:619 天
  • 建站时间:2017-9-14
  • 最后更新:2019-4-2

在IBatis.Net中获取存储过程的Output的参数值

今天在写网上商城的时候,又碰到一问题,如何获取存储过程的outpu的参数呢?对于IBatis.Net这东西还真有点排斥,郁闷。在网上搜了一些资料后,终于找到了方法。 

以下是SQL:

SQL代码
  1. create proc sp_sys_addUser   
  2. (   
  3.     @userName    varchar(20),   
  4.     @ID    int    output  
  5. )   
  6. as  
  7. begin  
  8.     insert into tbuser(userName) value(@userName)   
  9.     set @ID = IDENT_CURRENT("tbUser")   
  10. end  
  11. go   

SQLMap里的写法: 

SQLMap:
  1. <parameterMaps>  
  2.   <parameterMap id="addUser_parmap" class="Hashtable">  
  3.     <parameter property="userName" column="userName"/>  
  4.     <parameter property="ID" column="ID" direction="Output" />  
  5.   </parameterMap>  
  6. </parameterMaps>  
  7.   
  8. <statements>  
  9.   <procedure id="addUser" parameterMap="addUser_parmap">  
  10.     sp_sys_addUser   
  11.   </procedure>  
  12. </statements>  

程序里的代码: 

C#代码
  1. int ID = 0;      
  2. Hashtable map = new Hashtable();      
  3. map.Add("userName", userName);      
  4. map.Add("ID", ID );      
  5. mapper.Insert("addUser", map);      
  6. Console.WriteLine(map["ID"].ToString());    

还有一点得注意的是,在parammap定义的时候需要设置class=Hashtable,如果用class=int,就获取不到output的值了!

本站原创文章,请勿复制转载
版权声明:除特别注明外,本站所有文章均为原创,未经许可请勿复制、转载
2008-03-30
4,472 views
暂无评论

发表评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。