应该不会呀,你的sdr是什么?

解决方案 »

  1.   

    你的 ComboBox的DropDownStyle应为DropDown
      

  2.   

    to乌龙茶大虾,我的已经是dropdown了,再说,和这个属性有关系吗?to大头大虾,别管sdr是什么,第一个messagebox已经显示出来getstring的内容了,付给combo再读出来就没有了。而且,form上面显示的的确有内容,可是combo.text属性却是空“”。
      

  3.   

    这样行不行:
    MessageBox.Show(""+this.comboBox1.Text.tostring()+"");
      

  4.   

    SqlConnection conn=new SqlConnection("data source=(local);uid=sa;pwd=***;initial catalog=farming");
    SqlCommand cmd=new SqlCommand("select * from users",conn);
    conn.Open();
    SqlDataReader sdr=cmd.ExecuteReader();
    sdr.Read();
    MessageBox.Show(sdr.GetString(1));
    comboBox1.Text=sdr.GetString(1);
    MessageBox.Show(comboBox1.Text);
    sdr.Close();
    conn.Close();我这样写显示都是一样的值,不会显示为空啊。
      

  5.   

    ft,刚发现是怎么回事。
    改成这样就行了
    ……
    MessageBox.Show(sdr.GetString(3));
    this.comboBox1.Text = sdr.GetString(3).Trim();
    MessageBox.Show(this.comboBox1.Text);
    ……
    因为这个combo的datasource是sdr.GetString(3)对应字段经过去除前后空格得到的,而sdr.GetString(3)有空格,这样的长度会超过combo的长度(虽然我的combo的maxlength=0),这样的话,虽然在form上显示有内容,但是combo实际的text就是sdr.GetString(3)超过长度后右边的空格。
      

  6.   

    Text是属性而不是变量或者说字段,其get和set并不一定对称(尽管要求如此),所以不能把它当成一个变量来看待。对于变量而言,这是不可思议的(除非里面有隐式类型转换),但对于属性而言,却是可以理解的。楼主最好贴出全部代码,这样才好查。
      

  7.   

    已经搞定了,就是因为赋给combo的string右边带有大量空格造成的。