IBatisNet 执行存储过程 获取存储过程参数

下面文章来自 http://www.cnblogs.com/maplye/archive/2006/03/25/358598.html

粘贴过来紧供个人学习之用,如果想引用一下文章请于原作者联系。

映射xml文件书写如下

<? xml version="1.0" encoding="utf-8"  ?>

< sqlMap  namespace ="Member"  xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"  xsi:noNamespaceSchemaLocation ="SqlMap.xsd" >
    
< resultMaps >
        
< resultMap  id ="SelectResult"  class ="PlatAdmin.Model.Member" >
            
< result  property ="Id"  column ="id"   />
            
< result  property ="Identityno"  column ="identityno"   />
            
< result  property ="Telephone"  column ="telephone"   />
            
< result  property ="Email"  column ="email"   />
            
< result  property ="Linktel"  column ="linktel"   />
            
< result  property ="Address"  column ="address"   />
            
< result  property ="Content"  column ="content"   />
            
< result  property ="Username"  column ="username"   />
            
< result  property ="Password"  column ="password"   />
            
< result  property ="Truename"  column ="truename"   />
            
< result  property ="Enable"  column ="enable"   />
            
< result  property ="Regdate"  column ="regdate"   />
        
</ resultMap >
    
</ resultMaps >
        
    
< parameterMaps >
        
< parameterMap  id ="swapParas"  class ="PlatAdmin.Model.Member" >
            
< parameter  property ="querystr"  column =""   />
            
< parameter  property ="keyfield"  column =""   />
            
< parameter  property ="pagesize"  column =""   />
            
< parameter  property ="pagenumber"  column =""   />
        
</ parameterMap >
    
</ parameterMaps >
    
    
< statements >
        
< procedure  id ="GetMemberList"  parameterMap ="swapParas"  resultMap ="SelectResult" >
            usp_GetRecordset
        
</ procedure >

        
    
</ statements >
</ sqlMap >

 程序代码如下:

public  IList GetMemberList( string  querystr, int  pageNo)
        
{
            Hashtable ht 
= new Hashtable();
            ht.Add(
"querystr",querystr);
            ht.Add(
"keyfield","id");
            ht.Add(
"pagesize",2);
            ht.Add(
"pagenumber",pageNo);

            SqlMapper sqlMap 
= IBatisNet.DataMapper.Mapper.Instance();

            
try
            
{
                
return sqlMap.QueryForList("GetMemberList",ht);
            }

            
catch(Exception e)
            
{
                
throw new IBatisNetException(e.Message,e);
            }

        }

 

最近有人问我怎么获取存储过程的output的参数值,由于我最近没有用Ibatis.net,所以就从文档中找到的param的xml,也就没有在意,但后来有人说调不通,今天早上又收到一份留言,所以我早上作了测试!也出现获取不到数据的问题,但最后还是解决了!我的测试环境是sqlserver2005/vs2005/ibatis.net2.0
如下:
procedure:

create   proc  sp_output
(
    
@testParam      int     output
)
as
begin
    
set   @testParam   =   10
end
go

xml:
   < parameterMaps >
    
< parameterMap  id ="select-params2"  class ="Hashtable" >
      
< parameter  property ="testParam"  column ="testParam"  direction ="Output"   />
    
</ parameterMap >
  
</ parameterMaps >

  
< statements >

    
< procedure  id ="GetAccountViaSP2"  parameterMap ="select-params2" >
      sp_output
    
</ procedure >
  
</ statements >

code:
int  testid  =   0 ;
            Hashtable map 
=   new  Hashtable();
            map.Add(
" testParam " , testid);

            mapper.Insert(
" GetAccountViaSP2 " , map);

            Console.WriteLine(map[
" testParam " ].ToString());

注意,在parammap定义的时候需要设置class=Hashtable,用class=int,就获取不到!
希望对读者有帮助!有任何问题可以发邮件给我 mapley@gmail.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值