如下代码实现联动下拉框,当选择部门时,会显示该部门所有人员,现在会出现人员重复的现象,请问是怎么回事?例如选择“人事部门”,
会出现
“全部人员”
“小王”
“小王”
“小王”
“小王”
“小王”
“小王”
“小王”
“小王”
“小王”
“小王”
“小李”
“小李”
“小李”
“小李”
“小李”
“小李”
“小李”
“小李”
“小李”人员重复的数量正好==部门数量
    protected void DDLDep_SelectedIndexChanged(object sender, EventArgs e)
    {
        int depID = int.Parse(DDLDep.SelectedValue);
        if (depID != 0)
        {
            CF.BLL.Users userBll = new CF.BLL.Users();
            DDLUsers.DataSource = userBll.GetList(" Users.DepID= " + depID);
            DDLUsers.DataBind();
            DDLUsers.Items.Insert(0, new ListItem("全部人员", "0"));
        }
    }初始化时代码:CF.BLL.Department depBll = new CF.BLL.Department();
            DataSet ds = depBll.GetAllList();
            DDLDep.DataSource = ds.Tables[0].DefaultView;
            DDLDep.DataBind();
            DDLDep.Items.Insert(0, new ListItem("全部科室", "0"));            CF.BLL.Users userBll = new CF.BLL.Users();
            DataSet dsu = userBll.GetAllList();
            DDLUsers.DataSource = dsu.Tables[0].DefaultView;
            DDLUsers.DataBind();
            DDLUsers.Items.Insert(0, new ListItem("全部人员", "0"));
其中:
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select [DepID],[DepName] ");
strSql.Append(" FROM Department ");
if(strWhere.Trim()!="")
{
strSql.Append(" where "+strWhere);
}
return DbHelperSQL.Query(strSql.ToString());
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetAllList()
{
return dal.GetList("");
}

解决方案 »

  1.   

    你自己写条sql语句绑室到下拉框,就可以用distinct过滤重复的
      

  2.   

    表中本来就存放多条记录,最好分析一下你的SQL语句,是否有关联表的情况
      

  3.   

     DDLUsers.DataSource = userBll.GetList(" Users.DepID= " + depID);
      strSql.Append("select [DepID],[DepName] ");
                strSql.Append(" FROM Department ");
                if(strWhere.Trim()!="")
                {
                    strSql.Append(" where "+strWhere);楼主,你看看这拼起来是什么。。
    select [DepID],[DepName] from Department where Users.DepID="ID";
    Users. 这是什么?
     
      

  4.   

    select [DepID],[DepName] FROM Department 
    就这一句啊可能是.net执行多了吧?
    应该不是SQL的问题,distinct也不行
      

  5.   

    就那一句?
    莫非你的
     public DataSet GetList(string strWhere)
            {
                StringBuilder strSql=new StringBuilder();
                strSql.Append("select [DepID],[DepName] ");
                strSql.Append(" FROM Department ");
                if(strWhere.Trim()!="")
                {
                    strSql.Append(" where "+strWhere);
                }
                return DbHelperSQL.Query(strSql.ToString());
            }
    这个方法不在UserBll类里。。?
      

  6.   

    你用datareader读取一下试试!
      另外分析下读取数据,绑定数据循环!   
        调试下试试!
     吗上就发现那有问题了!
      

  7.   

    初始化时是多少个?
    进行SelectedIndexChanged事件是否多了?
    那么直接在事件中的最前:lst.Items.Clear();试试
      

  8.   


            /// <summary>
            /// 获得数据列表
            /// </summary>
            public DataSet GetList(string strWhere)
            {
                StringBuilder strSql=new StringBuilder();
                strSql.Append("select distinct [DepName],[DepID] ");
                strSql.Append(" FROM Department ");
                if(strWhere.Trim()!="")
                {
                    strSql.Append(" where "+strWhere);
                }
                return DbHelperSQL.Query(strSql.ToString());
            }
      

  9.   

    直接用sql查询一下不就知道了,到底是sql问题还是直接重复了
    应该sql问题,按楼上的distinct一下就可以了
      

  10.   

    你两表联合没有写两表查询的条件select * fom a,b where a.bid=b.id and b.name='****'
      

  11.   

    楼主,根据部门ID查询人员,你from后面跟的是部门表还是人员表?userBll.GetList(" Users.DepID= " + depID);这个方法的代码里看下
      

  12.   

     select [UserID],Users.DepID,DepName,[UserName],[RealName],[Password],[Phone],[Note]  FROM Users,Department 不好意思,是这句的问题!一下子查两个表了,我现在又需要查询两个表呢,因为要得到部门的名称,加上distinct还是不行啊
      

  13.   

    关联关系呢?
    from Users,Department where Users.UserID=Departement.UID类似这样的话写上不就ok了?
      

  14.   

    哥们儿,低级错误,SQL语句没连表啊,就是a.fieldname=b.fieldname 或者用inner join或者把GetList的这个方法改了,直接从users表里取数据
      

  15.   

    唉……
    真菜,from Users,Department后的Department后加的
    也没调试,就来问大家了,不好意思啊