下面文章来自 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
本文介绍如何使用IBatis.NET正确配置并获取存储过程的输出参数值,通过具体示例展示XML映射文件及代码实现细节。
1255

被折叠的 条评论
为什么被折叠?



