废话不说,上代码。
/// <summary>
/// 查询数据
/// </summary>
/// <returns></returns>
public object GetListBySql(string sql)
{
object _rObj = null;
using (ITransaction tx = _isSession.BeginTransaction())
{
try
{
_rObj = _isSession.CreateQuery(sql);
tx.Commit();
}
catch (Exception e)
{
tx.Rollback();
LogHelper.Error("系统异常:", e);
}
finally
{
FactorySessionHelper.CloseSession();
}
}
return _rObj;
}
/// <summary>
/// 查询数据(带参数,推荐使用)
/// </summary>
/// <param name="sql"></param>
/// <param name="pars"></param>
/// <returns></returns>
public object GetListBySql(string sql, params object[] pars) {
object _rObj = null;
using (ITransaction tx = _isSession.BeginTransaction())
{
try
{
//IQuery _iquery = _isSession.CreateQuery(sql).
_rObj = _isSession.CreateQuery(sql);
///他妹,就没有支持动态传参的方法。求高手点播。
///本人知道这个方法_isSession.CreateCriteria()可以动态传参,但是要穿实体,很恶心。
tx.Commit();
}
catch (Exception e)
{
tx.Rollback();
LogHelper.Error("系统异常:", e);
}
finally
{
FactorySessionHelper.CloseSession();
}
}
return _rObj;
}
------解决方案--------------------------------------------------------
建议你用criteria,不要用hql
另外新版本的nhibernate已经支持linq了。