IBatisNet 如何调用存储过程返回一个select结果集,并把查询的结果集用GridView显示出来???!!麻烦写详细些!!!
如:表为users;存储过程为GetUsers.
users表字段如下:
usersID,usersName,usersSex,usersTel,usersAddGetUsers:
create procedure GetUsers
@usersSex int
as
begin
select usersID,usersName,usersSex,usersTel,usersAdd from users where usersSex=@usersSex
end
如:表为users;存储过程为GetUsers.
users表字段如下:
usersID,usersName,usersSex,usersTel,usersAddGetUsers:
create procedure GetUsers
@usersSex int
as
begin
select usersID,usersName,usersSex,usersTel,usersAdd from users where usersSex=@usersSex
end
public string usersID
{
get { return m_usersID; }
set { m_usersID = value; }
} private string m_usersName;
public string usersName
{
get { return m_usersName; }
set { m_usersName = value; }
}
这个实体类定义成A,那么
IBatisNet最后返回一个IList<A>数据源啊,GridView绑定一下就可以了啊。
<parameterMaps>
<parameterMap id="Users" class="Hashtable">
<parameter property="usersID" column="usersID" direction="Output"/>
<parameter property="usersName" column="usersName" direction="Output"/>
<parameter property ="usersSex" column="usersSex" direction="Input"/>
<parameter property="usersTel" column="usersTel" direction="Output"/>
<parameter property="usersAdd" column="usersAdd" direction="Output"/>
</parameterMap>
</parameterMaps> <statements>
<procedure id="GetUsers" parameterMap="Users">
GetUsers
</procedure>
</statements>
select * from (
SELECT row_number() OVER (ORDER BY $OrderByField$ $OrderType$) as rownum,
*
FROM TableName
) temp
where rownum between $StartID$ and $EndID$
ORDER BY $OrderByField$ $OrderType$
</select>其中ResultMap换成你自己的返回结果映射,tablename换成你要获取分页数据的表名,然后在前台调用时:public static IList<ProjectInfo> ProjectPaging(int pageSize, int pageIndex,string orderbyField,bool orderby)
{
int startID = 0;
int endID = 0;
GetPageID(pageIndex,pageSize,ref startID,ref endID); Hashtable hashParam = new Hashtable();
hashParam.Add("OrderByField", orderbyField);// 排序字段
hashParam.Add("StartID",startID);// 开始ID
hashParam.Add("EndID",endID);// 结束ID
if (orderby)
{
hashParam.Add("OrderType", "Desc");// 排序方式
}
else
{
hashParam.Add("OrderType", "Asc");
} return daoMultiProject.ProjectPaging(hashParam);
}/// <summary>
/// 计算页面的开始和结束编号
/// </summary>
/// <param name="pageNo">页码</param>
/// <param name="pageSize">页面大小</param>
/// <param name="startID">返回的开始编号</param>
/// <param name="endID">返回的结束编号</param>
public static void GetPageID(int pageNo, int pageSize, ref int startID, ref int endID)
{
startID = (pageNo - 1) * pageSize + 1;
endID = startID + pageSize - 1;
}
public static IList<实体类> GetPlanList(实体类 m_实体类)
{
try
{
String stmtId = "aaaaa";//这个要和你XML里ID对应
SqlMapper objSqlMapper = new SqlMapper();
IList<实体类> m_new = objSqlMapper .QueryForList<实体类>(stmtId, m_实体类);
return m_new ;
}
catch
{
throw;
}
} <procedure id="aaaaa" parameterMap="MapID" resultClass="实体类">
存储过程名
</procedure> <parameterMap id="MapID" class="实体类">
<parameter property="对应字段"/>
<parameter property="对应字段" />
<parameter property="对应字段"/>
<parameter property="对应字段"/>
<parameter property="对应字段"/>
<parameter property="对应字段"/>
<parameter property="对应字段"/>
</parameterMap>
基本是这样了。