我比如说里面有个下拉框控件
sqlDat1.Fill(dataSet161);
DDL2.DataSource=dataSet161.Tables["UserList"].DefaultView;
DDL2.DataTextField="Tname";
DDL2.DataValueField="Id";
DDL2.DataBind();
Response.Write(DDL2.Items.IndexOf(DDL2.Items.FindByText("薛留忠")));输出竟然是-1,可是里面明明是有的,这是怎么回事啊

解决方案 »

  1.   

    sqlDat1.Fill(dataSet161);
    这句改成:
    sqlDat1.Fill(dataSet161,"UserList");试试!
      

  2.   

    sqlDat1.Fill(dataSet161);
    如果不指定表名,改为:
    DDL2.DataSource=dataSet161.Tables[0].DefaultView;
      

  3.   

    dataset填充时候没给datatable表名后面又忽然冒出一个UserList当然不对了咯
      

  4.   

    那个我是在前面就已经帮定好了,我dataset里面有好多表,这样写是正确的,我想问的不是这个,我想问的是,我选的 index怎么会是-1,明明里面有的
      

  5.   

    sqlDat1.Fill(dataSet161);
    DDL2.DataSource=dataSet161.Tables["UserList"].DefaultView;
    DDL2.DataTextField="Tname";
    DDL2.DataValueField="Id";
    DDL2.DataBind();
    Response.Write(DDL2.Items.IndexOf(DDL2.SelectedValue="薛留忠"));
      

  6.   

    你的数据库里的值不是薛留忠
    而是薛留忠后面有一定的空格,
    “薛留忠”和“薛留忠      ”不相等
    当然找不到“薛留忠”
    所以index是-1
      

  7.   

    如果前边为dataset中的一个表指定了表名为UserList,那就应该是空格的问题了。