怎么循环把一个集合的值赋给dropdownlist,从数据库找出来的是一个集合···实用linq找出来的···
例如···
var aa = from b in table select b.name  
dropdownlist.items.clear();
for (var i=0;i<aa.count();i++)
{
  listitem  item = new listitem(~~~~~~~~~~~~~~~~~~~~~~~~~);
  dropdownlist.items.add(item);
}不知道for循环里面怎么来获取这个值·····
aa[i]是不可以的····
大家来给个说法···

解决方案 »

  1.   


    DropdownList绑定的两种方法
    动态绑定方法一:动态绑定数据库中的字段。
    SqlConnection conn = UtilitySqlClass.OperateDataBase.ReturnConn();
    string strSQL = "select * from CompanyType";
    SqlDataAdapter ada = new SqlDataAdapter(strSQL, conn);
    DataSet ds = new DataSet();
    ada.Fill(ds, "CompanyType");
    DropDownList1.DataSource = ds.Tables["CompanyType"].DefaultView;
    DropDownList1.DataValueField = ds.Tables["CompanyType"].Columns[1].ColumnName;
    DropDownList1.DataTextField = ds.Tables["CompanyType"].Columns[1].ColumnName;
    DropDownList1.DataBind();
    ds.Dispose();
    动态绑定方法二:利用DropDownList.Items.Add方法。
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    SqlConnection conn = UtilitySqlClass.OperateDataBase.ReturnConn();
    try
    {
    conn.Open();
    this.DropDownList1.Items.Add("");
    string strSQL = "select CompanyType from CompanyType";
    SqlCommand com = new SqlCommand(strSQL, conn);
    SqlDataReader dr = com.ExecuteReader();
    while (dr.Read())
    {
    this.DropDownList1.Items.Add(dr["CompanyType"].ToString());
    }
    }
    catch (Exception ex)
    {
    Response.Write("<scirpt>alert('" + ex.Message.ToString() + "')</script>");
    }
    finally
    {
    conn.Close();
    }
    }
    }
    第一种方法:
            string ConnString = ConfigurationSettings.AppSettings["ConnectionString"]; 
             //创建一个SqlConnection
             SqlConnection Conn = new SqlConnection( ConnString );       
             string SQL_Select = "select id, ItemName from DDLItem order by id desc";
             //构造一个SqlDataAdapter
             SqlDataAdapter myAdapter = new SqlDataAdapter( SQL_Select, Conn);
             //开始读取数据
             Conn.Open();
             DataSet dataSet = new DataSet();
             myAdapter.Fill( dataSet,"Table1" );
             Conn.Close();
             //开始绑定DropDownList
             //指定DropDownList使用的数据源
             DropDownList1.DataSource = dataSet.Tables["Table1"].DefaultView;
             //指定DropDownList使用的表里的那些字段
             DropDownList1.DataTextField = "ItemName"; //dropdownlist的Text的字段
             DropDownList1.DataValueField = "id";//dropdownlist的Value的字段
             DropDownList1.DataBind();第二种方法:
            con.Open();
            SqlCommand cmd = new SqlCommand(strSql,con);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {      
                DropDownList1.Items.Add(new ListItem(dr["status"].ToString(), dr["status_Id"].ToString()));
            }
      

  2.   

    获取也是按从0到 dropdownlist.items.count循环获取
      

  3.   

    怎么是从dropdownlist.items.count获取呢?不是循环那个找出来的那个集合确定要插入几个值么?
      

  4.   

    我使用的是linq来查询的···和sql查询方法不一样···
      

  5.   

       var source = from b  in table select new { name = temp.flag };
                foreach (var item in source)
                {
                    ListItem l = new ListItem();
                    l.Value = l.Text = item.name;
                    DropDownList1.Items.Add(l);
                }
      

  6.   

    直接绑定数据源。
    设置显示的Text
    和Value值 就好呢~!