我的目的,根据传入的阅读集合(多人有权限阅读,这里是一条阅读记录),找出其中的人,并把数据加到人的集合。
结果是:传入的阅读集合是正确的,有两个记录。但是得到的人的集合,开始的一条记录是空值,后一条正常。
请教了!
      //根据阅读记录找出人
        public IList<PBSTAFFEntity> getStaffByInfoItem(IList<InfoBrowseEntity> infoItemEntity)
        {            IList<PBSTAFFEntity> result = new List<PBSTAFFEntity>();            if (infoItemEntity.Count > 0)
            {
                foreach (InfoBrowseEntity itemEntity in infoItemEntity)
                {
                    PBSTAFFEntity pbstaffEntity = new PBSTAFFEntity();
                    string strWhere = "PB_LOGIN_ID='" + itemEntity.PBLOGINID.ToString() + "'";
                    result = getuser(strWhere);
                    result.Add(pbstaffEntity);
                }            }
            return result;
            
        }

解决方案 »

  1.   

    需求:
    我要做的是修改一条公告记录
    这条公告原来是允许某个部门的人看
    现在我打开,需要把那些部门显示出来我的思路:
    选择了某条数据,将子表中的人员选出,再推算出当初选择的是某个部门。
      
     /// <summary>
        /// 复选框的部门
        /// </summary>
        /// <param name="mainEntity"></param>
        private void LoadSelectedPart(InfoEntity mainEntity)
        {
            LoadDepart();        InfoMgr mgr = new InfoMgr(mainEntity);
            IList<InfoBrowseEntity> result = mgr.GetInfoItem("id=" + mainEntity.ID.ToString());//公告对应的阅读集合        InfoBrowseEntity infoBrowseEntity = new InfoBrowseEntity();
            StaffMgr smgr = new StaffMgr();//根据阅读集合得到一个集合
            IList<PBSTAFFEntity> presult = smgr.getStaffByInfoItem(result);//阅读集合对应的人集合
            IEnumerator enumerator = presult.GetEnumerator();
            while (enumerator.MoveNext())
            {
                PBSTAFFEntity entity = enumerator.Current as PBSTAFFEntity;            int iPos = -1;
                foreach (ListItem item in lstDepart.Items)
                {
                    iPos++;
                    if (item.Value == entity.PBDEPARTMENTID.ToString())
                    {
                        lstDepart.Items[iPos].Selected = true;
                    }            }
            }
        }
    //根据阅读记录找出人
           public IList<PBSTAFFEntity> getStaffByInfoItem(IList<InfoBrowseEntity> infoItemEntity)
            {
                String strWhere = "PB_LOGIN_ID in (";
                String strInId = String.Empty;
                foreach (InfoBrowseEntity itemEntity in infoItemEntity)
                {
                    strInId += "'" + itemEntity.PBLOGINID.ToString() + "',";
                }            if (String.IsNullOrEmpty(strId))
                    return null;
                strWhere += strInId.Substring(0, strInId.Length - 1) + ")";
                IList<PBSTAFFEntity> result = getuser(strWhere);  //修改getuser函数,使返回为IList<PBSTAFFEntity>            return result;
            }        public IList<PBSTAFFEntity> getuser(string whereSqlString)
            {
                PBSTAFFService service = new PBSTAFFService(new PBSTAFFEntity());
                return service.SelectPBSTAFF(whereSqlString);
            } /// <summary>
            /// 自定义检索职员
            /// </summary>
            /// <returns></returns>
            public IList<PBSTAFFEntity> SelectPBSTAFF(string whereSqlString)
            {           
                IList<PBSTAFFEntity> result=new List<PBSTAFFEntity>();
                DAOBase dao = new PBSTAFFDAO(entity);
                dao.WhereSQLString=whereSqlString;
    DataSet ret=dao.Select();
    if (ret != null)
                {
                    if (ret.Tables[0].Rows.Count > 0)
                    {
                        foreach(DataRow row in ret.Tables[0].Rows)
                        {
                            PBSTAFFEntity _entity = new PBSTAFFEntity();
    _entity.PBLOGINID=(row["PB_LOGIN_ID"].ToString());
    _entity.PBPASSWORD=(row["PB_PASSWORD"].ToString());
    _entity.PBDEPARTMENTID=(row["PB_DEPARTMENT_ID"].ToString());
    _entity.PBCODE=(row["PB_CODE"].ToString());
    _entity.PBNAME=(row["PB_NAME"].ToString());                        result.Add(_entity);
                        }
                    }
                }
                return result;
            }