在comboBox1里添加了一些值,但我想要得到里面的value值,但Winform里面好象没value值,假如添加的值是编号,但value对应的id,现在想要通过查询语句select * from jobs where '" + this.comboBox1.SelectedValue + "' like '%" + this.textBox1.Text + "%'",在web上可以通过,Winform该怎么写?

解决方案 »

  1.   

    winform中的ComboBox也有SelectedValue,如果不符合要求的话,看看SelectedText如何?
      

  2.   

    ComboBox 的值是一个键值对  其操作是comboBox.SelectedText和comboBox.SelectedValue来取它的“键”“值”的
      

  3.   

    设置ComBoBox的DisplayMember和ValueMember,然后设置DataSource为一个List<object>,object包括值和显示属性分别对应DisplayMember和ValueMember
      

  4.   

    但是有ValueMember和DisaplayMember属性。
      

  5.   

    怎么使用这2个属性,谁给个例子代码,TKS
      

  6.   


    this.comboBox1.DisplayMember = "[前台显示的字段]";
                this.comboBox1.ValueMember = "[后台显示的字段]"; //如:this.comboBox1.ValueMember = "id"
                this.comboBox1.DataSource = "[数据源]";
      

  7.   

    ComboBoxTreatmentSort.DataSource = dataTableTreatmentType;//这个是你的数据源datatable
    ComboBoxTreatmentSort.DisplayMember = "code_name";//这个是datatable里面的栏位
    ComboBoxTreatmentSort.ValueMember = "code_id";//这个是datatable里面的栏位ComboBoxTreatmentSort.SelectedValue.ToString() 对应的就是ValueMember 里帮定的栏位的值
      

  8.   

    SqlConnection objcon = new SqlConnection("server=.;uid=sa;pwd=314;database=pubs");            objcon.Open();            SqlDataAdapter da = new SqlDataAdapter("select * from jobs where '" + this.comboBox1.SelectedValue + "' like '%" + this.textBox1.Text + "%'", objcon);            DataSet ds = new DataSet();            da.Fill(ds, "jobs");            dataGridView1.DataSource = ds.Tables["jobs"];            this.comboBox1.DisplayMember = "编号";            this.comboBox1.ValueMember = "job_id"; //如:this.comboBox1.ValueMember = "id"            this.comboBox1.DataSource = ds.Tables["jobs"];
    是这样写吗.如果不对该怎么改?
      

  9.   

      SqlDataAdapter da = new SqlDataAdapter("select * from jobs where '" + this.comboBox1.SelectedValue + "' like '%" + this.textBox1.Text + "%'", objcon); 这一句,如果顺序不错的话,这个时候的ComboBox的SelectedValue恐怕是空值吧。
      

  10.   

    this.comboBox1.DataSource绑定出错了,想问问怎么写
      

  11.   

    只要那个DataTable存在,并且对应的字段存在,就没有什么问题。
      

  12.   

    comboBox1里出始值显示为System.data.datarowview,郁闷.一头雾水
      

  13.   

    你确定那个DataTable中有"job_id"和“编号”字段这两个字段么?
      

  14.   

    设置ComBoBox的DisplayMember和ValueMember
      

  15.   

    this.comboBox1.SelectedItem.ToString()
      

  16.   

    比如说,你的DataTable中有一个“job_id”和一个“job_name”字段,前一个字段表示job的编号,后一个字段是对job的名称描述,这个时候,就可以将ComboBox的ValueMember设为“job_id”,而将DisaplyMember设为“job_name”了。这样,显示出现的就是描述而非单一的编号。
      

  17.   

     SqlConnection objcon = new SqlConnection("server=.;uid=sa;pwd=314;database=pubs");            objcon.Open();            SqlDataAdapter da = new SqlDataAdapter("select * from jobs where '" + this.comboBox1.SelectedValue+ "' like '%" + this.textBox1.Text + "%'", objcon);            DataSet ds = new DataSet();            da.Fill(ds, "jobs");            dataGridView1.DataSource = ds.Tables["jobs"];            DataTable dt = new DataTable();
                dt.Columns.Add("Key", Type.GetType("System.String"));
                dt.Columns.Add("Text", Type.GetType("System.String"));
                dt.Rows.Add(job_id, "编号");
                dt.Rows.Add(min_lvl, "最小值");
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "Text";
                comboBox1.ValueMember = "Key";
    现在改成这样写了,但为什么查不出数据.帮忙看下!!  谢谢
      

  18.   

    ComboBoxTreatmentSort.DataSource = dataTableTreatmentType;//这个是你的数据源datatable 
    ComboBoxTreatmentSort.DisplayMember = "code_name";//这个是datatable里面的栏位 
    ComboBoxTreatmentSort.ValueMember = "code_id";//这个是datatable里面的栏位 ComboBoxTreatmentSort.SelectedValue.ToString() 对应的就是ValueMember 里帮定的栏位的值
    参考
      

  19.   

    DisaplyMember是一组值,供ComboBox显示。ValueMember是另一组与DisplayMember对应的值,对应着在ComboBox中显示的值所代表的值(有点拗口),在用户选择之后,SelectedValue会返回ValueMember中的某一个,对应于用户所选择的DisaplyMember中的那一个。
      

  20.   

    不用看贴图,你弄懂了ValueMember和DispalyMember就没有问题了。BTW:要贴图的话,先把图上传到网上某个可公开访问的位置,然后引用。
      

  21.   

    要不你将第11楼你贴的代码中,设置DisplayMember的那一句注释掉看看。
      

  22.   

    where 后应该跟TABLE 的栏位名啊,如果你COMBOX里放的是TABLE的栏位那你就要把
     SqlDataAdapter da = new SqlDataAdapter("select * from jobs where '" + this.comboBox1.SelectedValue + "' like '%" + this.textBox1.Text + "%'", objcon);
    这句改为 SqlDataAdapter da = new SqlDataAdapter("select * from jobs where " + this.comboBox1.SelectedValue.ToString() + " like '%" + this.textBox1.Text + "%'", objcon);
      

  23.   

    ComboBox1.SelectedValue
    ComboBox1.Text
      

  24.   

    首先 看看你的Combox 有没有Value值..
      在看数据访问. 输出下语句. 调试下。.
      

  25.   

    ComboBox.DataSource = dataTable;//这个是你的数据源datatable 
    ComboBox.DisplayMember = "code_name";//这个是datatable里面的字段
    ComboBox.ValueMember = "code_id";//这个是datatable里面的字段 
      

  26.   

    除了楼上所述方法 用户也可自定义数据对象 //自定义下拉框列表对象
    public class ComboBoxItem
    {
    private int id;
    private string name;
    public ComboBoxItem()
    {
    id=0;
    name=string.Empty;
    }
    public int Id
    {
    get{return id;}
    set{id=value;}
    }
    public string Name
    {
    get{return name;}
    set{name=value;}
    }
    } //应用示例
    ComboBoxItem cbi=new ComboBoxItem();
    cbi.Id=5;
    cbi.Name="北京";
    System.Collections.ArrayList al=new ArrayList();
    al.Add(cbi);
    ComboBox cb1=new ComboBox();
    cb1.DataSource=al;
    cb1.DisplayMember="Name";//注意大小写,这里对应定义的public属性名
    cb1.ValueMember="Id";
    cb1.DropDownStyle=ComboBoxStyle.DropDownList;//定义样式为只读。默认是可读写