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

解决方案 »

  1.   

    IBatisNet就是支持.net的IBatis框架
      

  2.   

    不知道楼主对这个熟悉多少啊,跟据你说的很难三言两语的说明白的。首先你要有一个实体类啊,所有的字段和你数据库的字段大小写要对应        private string m_usersID;
            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绑定一下就可以了啊。
      

  3.   

    还要添加IBatisNet的DLL引用,配置web.config,以及sqlmap.config....
      

  4.   

    XML文件这样配置对吗?
    <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>
      

  5.   

    在xml里做个如下配置:<select id="ProjectPaging" parameterClass="Hashtable" resultMap="ProjectInfoResultMap">
          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;
    }
      

  6.   


            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>
    基本是这样了。