另外一个号没有分了,继续发贴请教。表:
ID  XM   JZ   LA  GH  XB
1   A    11   AA
2   B    22   BB
3   C    33   CC
4   D    44   DD
5   E    55   EEID是主键,现在在dropdownlist实现XM,JZ,LA的联动。
this.DropDownList2.DataSource = ds;
this.DropDownList2.DataTextField = "Name";
this.DropDownList2.DataValueField = "ID";
在这句, datavaluefield=“ID”,如果ID是主键的时候是不是就不能使用了?
不用这句代码程序是不是也能执行?
this.DropDownList2.DataBind();

解决方案 »

  1.   

    datavaluefield=“ID”,如果ID是主键的时候是不是就不能使用了?不是的this.DropDownList2.DataBind();这句话没有,数据就绑定不到DropDownList控件上去的
      

  2.   

    DataValueField  指定后,生成的是 <select><option> 里的value。和是否是主键没有关系。
    当然作为key它应该是不重复的。
      

  3.   

    感谢楼上几位的回答。
    this.DropDownList2.DataBind();这句已经写了。
    this.DropDownList2.DataValueField = "ID";
    如果等于ID的时候,他就会报错, 好像是找不到ID的值吧。?
    数据来源
    select distinct jz from bsperson where xx(同时满足kb和ID) 后面的条件该怎么写?
      

  4.   

    ds 是虾米呀? DataSource 应该绑定到 DataTable 上。另外得保证DataTable有ID这一列。select distinct jz from bsperson where xx  1.这个sql里,没有把ID查出来,结果集里当然没有ID。2.满足kb和ID是什么意思,具体什么业务你不说别人不知道?
      PS:用 join, exists, in 都可以进行关联查询。 
      

  5.   

    本是是dt的,搞错了。我jz为 11 的时候,需要同时满足两个条件,如上面表中的ID=1,XM=A
    select where那,是不是直接用and连接id和xm就可以了
      

  6.   

    你都没有把ID字段包含在数据集当中,你后来的DataValueField怎么能发现有ID这个字段呢???
      

  7.   

    LZ注意了:
    1.目标要明确  你需要那些字段(ID,XM,JZ,LA,GH,XB)
    2.Select条件要明确  Select ID,XM,JZ,LA,GH,XB from bsperson where  kb="XX" and ID="XY";要同时满足多个条件就用and,如果多个条件中满足一个就可以的话就用or,另如果需要连接其他表就用 left join  或者  right join ;
    3.绑定的数据源要明确  this.DropDownList2.DataValueField = "ID";  这里面的ID 必须是你数据源里面存在的继续尝试吧!