下面文章来自 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 >
< 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);
}
}
{
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
(
@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 >
< 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());
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