ibatis.net 关于Hashtable 相关问题

sunrocky 2012-12-26 11:14:24
xml文件配置
<!--动态查询,分页,指定查询字段,返回DataSet,并指定查询条件-->
<select id="SelectDSPageFilterWhereTPolicyAdvice" parameterClass="Hashtable" resultClass="System.Data.DataSet">
<![CDATA[SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY]]>
<isNotNull property="OrderStr">$OrderStr$</isNotNull>
<![CDATA[) AS R,]]>
<dynamic>
<isNotEmpty property="FieldNames">$FieldNames$</isNotEmpty>
<isEmpty prepend="PAID,PADATE,PATITLE,PACONTENT,REQUSERID,PASTATUS" property="FieldNames">$FieldNames$</isEmpty>
</dynamic>
<![CDATA[FROM TPOLICYADVICE]]>
<dynamic prepend="WHERE">
<isNotNull property="WhereStr">$WhereStr$</isNotNull>
</dynamic>
<![CDATA[) AS A WHERE R BETWEEN ((#PageIndex# - 1) * #PageSize# + 1) AND (#PageIndex# * #PageSize#) ]]>
</select>


接口 对应的方法
/// <summary>
/// 获取DataSet数据集,带过滤字段的DataSet,并分页,指定查询条件
/// </summary>
/// <param name="OrderStr">查询时的排序条件,如果不排序,则传null</param>
/// <param name="WhereStr">查询时的自定义条件,如:AGE=23</param>
/// <param name="PageIndex">当前第几页</param>
/// <param name="PageSize">每页多少条数据</param>
/// <param name="FiledNames">字段数据,查询所有的字段就传null</param>
/// <returns>符合条件的数据集DataSet</returns>
DataSet GetDSWhereTPolicyAdvice(string OrderStr, string WhereStr, int PageIndex, int PageSize,params string[] FiledNames);

实现接口的方法
public DataSet GetDSWhereTPolicyAdvice(string OrderStr,string WhereStr, int PageIndex, int PageSize, params string[] FiledNames)
{
Hashtable ht = new Hashtable();
ht.Add("PageIndex", PageIndex);
ht.Add("PageSize", PageSize);
ht.Add("OrderStr", OrderStr);
ht.Add("WhereStr", WhereStr);
ht.Add("FiledNames", ConvertData.ConvertParamsStringToString(",", FiledNames));
return QueryForDataSet("SelectDSPageFilterWhereTPolicyAdvice", ht);
}
功能描述:这个方法是通过 生成Hashtable,然后动态生成sql语句。

参数说明:PageIndex 当前第几页
PageSize 每页多少条数据
WhereStr 查询时的条件
FiledNames 查询的字段,添加到Hashtable中后,用逗号连接起来了
OrderStr 查询时排序条件

出现的问题:Hashtable添加了FiledNames ,但是对应的xml文件<isNotEmpty property="FieldNames">$FieldNames$</isNotEmpty>却没有动态生成。
...全文
303 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunrocky 2013-01-04
  • 打赏
  • 举报
回复
貌似石沉大海了,算了,结贴。。。
sunrocky 2012-12-27
  • 打赏
  • 举报
回复
自己再顶一下,这个方法有时候能够过滤指定的字段,有时候不行,是不是因为 FiledNames 是个特俗名称的原因,我将其修改为FiledNames_时就是好的。
sunrocky 2012-12-26
  • 打赏
  • 举报
回复
先自己顶一下,希望高手帮帮忙,另外还有个问题,ibatis的动态sql,当同时调用一个方法是,不是生成两个sql语句,而是,先缓存一个,然后里一个只是修改参数,但是我需要的是拼接字符串,不是将字符串当参数传过去。

5,657

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧