//返回IDbCommand的函数
private IDbCommand GetDbCommand(string statementName,object parameterObject)
{
IDbCommand p_command;
IBatisNet.Common.IDalSession m_sqlSession;
SqlMapper sqlMap = GetLocalSqlMap();
if (sqlMap.LocalSession != null)
{
m_sqlSession = sqlMap.LocalSession;
}
else
{
m_sqlSession = sqlMap.OpenConnection();
}
IMappedStatement mappedStatement = GetLocalSqlMap().GetMappedStatement(statementName);
RequestScope requestScope = mappedStatement.Statement.Sql.GetRequestScope(parameterObject, m_sqlSession);
// 通过这个方法生成一个DbCommand,并且给所有的SQL参数指定值。如果没有调用此方法,requestScope.IDbCommand属性为空 //
mappedStatement.PreparedCommand.Create(requestScope,
m_sqlSession, mappedStatement.Statement, parameterObject);
p_command = requestScope.IDbCommand;
return p_command;
}
//实现返回DataSet的函数
protected DataSet ExecuteQueryTable(string statementName,object parameterObject)
{
DataSet ds = new DataSet();
SqlMapper sqlMap = GetLocalSqlMap();
IDbCommand cmd = GetDbCommand(statementName,parameterObject);
cmd.CommandType = CommandType.Text;
cmd.CommandText = this.GetSql(statementName,parameterObject);
if (sqlMap.LocalSession != null)
{
IDbDataAdapter adapter =
sqlMap.LocalSession.CreateDataAdapter(cmd);
adapter.Fill(ds);
return ds;
}
else
{
IDalSession session = sqlMap.OpenConnection();
IDbDataAdapter adapter =
session.CreateDataAdapter(cmd);
adapter.Fill(ds);
session.CloseConnection();
return ds;
}
}