private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string str = "server=.;database=浙江省县级森林资源GIS;integrated security=true";
            SqlConnection conn = new SqlConnection(str);//创建一个新连接    
            conn.Open();  
            SqlCommand cmd = conn.CreateCommand();  
            cmd.CommandText = "select distinct name from 信息表";//在这儿写sql语句    
            SqlDataReader dr = cmd.ExecuteReader();//创建一个SqlDateReader对象    
            while (dr.Read())
            {
                comboBox1.Items.Add(dr[0]); 
            }
            dr.Close();
            comboBox1.SelectedIndex = 0;
            conn.Close(); 
        }
我想用combox实现对数据库 浙江省县级森林资源GIS中的表 信息表 里面的字段name进行显示,但是为什么不会显示出结果呢?请各位大虾指点

解决方案 »

  1.   

    你确定有数据吗?if(dr.hasrows)
    {
     while (dr.Read())
      {
      comboBox1.Items.Add(dr[0]);  
      }
    }
    else
    {
      output warning msg
    }
      

  2.   

    DropDownList1.DataTextField = "name";
    DropDownList1.DataValueField = "id";
      

  3.   

    当然有数据啦!但是combox的下拉里面却没有传入数据啊!
      

  4.   

    直接Fill一个DataTable,设置ComboBox的DataSource为该DataTable。
      

  5.   

    comboBox1初期都有值?
    如果没值,index都没变过,怎么可能触发SelectedIndexChanged事件,又怎么可能加从DB取的数据。
      

  6.   


    SqlDataReader dr = cmd.ExecuteReader();下面改为DataSet ds = new DataSet();
    dr.fill(ds);
    ComboBox1.DataSource=ds.Tables[0];
    //ComboBox1.DataTextField = "name"
    //ComboBox1.DataValueField = "id"
    //电脑没有VS,在记事本里写的,我也忘了ComboBox有没有上面的两个属性了,按照DropDownList的属性写的,如果有就把注释去掉.
    ComboBox1.DataBind();
      

  7.   

    string connStr = string.Format("data source=" + servername + ";database=" + databasename + ";uid=" + user + ";pwd=" + pwd + "");
                SqlConnection conn = new SqlConnection(connStr);
                SqlCommand cmd = new SqlCommand("sql语句", conn);
                conn.Open();
                SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd); 
                DataTable dataTable = new DataTable(); 
                sqlDataAdapter.Fill(dataTable); 
                conn.Close();
                comboBox1.DataSource = dataTable;
                comboBox1.DisplayMember="xx";
                comboBox1.ValueMember= "xx";
      

  8.   

    comboBox1数据绑定不应写在事件comboBox1_SelectedIndexChanged里,
    一般应写在页面Load事件里
      

  9.   

    高山流水,一般是直接在load里面写数据绑定,还是写数据绑定的函数,然后在combox里面调用呢?能不能具体点啊
      

  10.   

    写了数据绑定的函数,没操作触发调用函数,写了也不起作用的。
    如果需要画面启动起来时,combox就有数据,可以在load事件里写数据绑定或者调用数据绑定的函数。
    因为画面启动时,程序会自动触发load事件。
      

  11.   

    如果要在load事件里面写数据绑定的话,combox里面怎么调用呢?
      

  12.   

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
      string str = "server=.;database=浙江省县级森林资源GIS;integrated security=true";
      SqlConnection conn = new SqlConnection(str);//创建一个新连接   
      conn.Open();   
      SqlCommand cmd = conn.CreateCommand();   
      cmd.CommandText = "select distinct name from 信息表";//在这儿写sql语句   
      SqlDataReader dr = cmd.ExecuteReader();//创建一个SqlDateReader对象   
      while (dr.Read())
      {
      comboBox1.Items.Add(dr["name"]);  
      }
      dr.Close();
      comboBox1.text=comboBox.Items[0].text;
      conn.Close();  
      }你试一试这个呢?你看看你的查询语句那里是不是正确的!
      

  13.   

    combobox1.(什麼屬性)="字段名";
    comboBox1.datasourse=dt好像 就 這樣吧  
      

  14.   


                comboBox1.DisplayMember="xx";
                comboBox1.ValueMember= "xx";
                comboBox1.DataSource = dataTable;
      

  15.   

    8楼说得对
    你数据绑定应该写在窗口的page_load里面.
    winform是事件驱动的,只有当comboBox1.SelectedIndexChanged事件触发的时候才会执行对应绑定的方法.
    楼主应该是拖个combobox,双击就开始写代码了