数据库是这样的    数据库名称 Table
ID  类型  --
1     A
2     A
3     A
4     B
5     C
6     D
7     D选择comboBox.Text 内容是
A
B
C
D现在当comboBox.Text 为A时,如何读出 1,2,3呢!string Connection = @"Provider = Microsoft.Jet.OLEDB.4.0;Data Source = Table.mdb";
            OleDbConnection IndexConnection=  new OleDbConnection(Connection);
            IndexConnection.Open();            //动态查询多个表;
            string selectSql = "";
            string tableName = "";            selectSql = "select ID from 总表 where 类型 = " + comboBox.Text + " ";
                
            OleDbCommand cmd = new OleDbCommand(selectSql, IndexConnection);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataTable pDataTable = new DataTable();
            da.Fill(pDataTable);

解决方案 »

  1.   

    就是根据 comboBox.Text传入的值(类型) 查询数据库的内容(ID)。
    selectSql = "select ID from 总表 where 类型 = " + comboBox.Text + " ";    这种写法comboBox.Text 总是为A,不知道为何?
      

  2.   

    comboBox的内容是自己设定的,还是动态绑定的
    //如果是自己设定的
    comboBox.SelectedItem.ToString()
      

  3.   

    改成这样。
    selectSql = "select * from 总表 where 类型 = " + comboBox.Text + " "; 
    然后再取pDataTable.列["ID"]
      

  4.   

    另外“类型”字段是什么数据类型,估计查询语句要改成下面这样吧selectSql = "select ID from 总表 where 类型='" + comboBox.SelectedItem.ToString() + "'"; 
      

  5.   

    [Quote=引用 3 楼 lxcnn 的回复:]
    comboBox的内容是自己设定的,还是动态绑定的 
    是动态绑定的!
      

  6.   

    [Quote=引用 5 楼 lxcnn 的回复:]
    另外“类型”字段是什么数据类型,估计查询语句要改成下面这样吧 
    C# codeselectSql = "select ID from 总表 where 类型='" + comboBox.SelectedItem.ToString() + "'"; 
    我把事件写在 SelectionChangedCommition()里面
    '" + comboBox.SelectedItem.ToString() + "'   返回值送System.data.dataRowView;
      

  7.   

    动态绑定的这样取DataRowView rowView = (DataRowView)comboBox1.SelectedItem;
    textBox2.Text = rowView.Row["your_id"].ToString();
    textBox3.Text = rowView.Row["your_text"].ToString();
      

  8.   

    多谢参与!
    我现在想解决  如何 根据 comboBox.Text传入的值(类型) 查询数据库的内容(ID)。 
      

  9.   

    try...DataRowView rowView = (DataRowView)comboBox1.SelectedItem;
    string yourType = rowView.Row["your_text"].ToString();  //这里的your_text是你绑定时指定的DisplayMember
    selectSql = "select ID from 总表 where 类型='" + yourType + "'"; 
      

  10.   

    你拿个datagridview 绑定下 dateset 就可以了 代码没错
      

  11.   

    取出来的表 ID, 类型
    comboBox1.DisplayName="类型";
    comboBox1.DataSource=表名;DataRow[] rows=表名.Select("类型='"+comboBox1.SelectItem.ToString()+"')ID就在这些行里吧 
      

  12.   

    大哥 this.comboBox1.SelectedItem.ToString();就是你要的值了!
      

  13.   

    [Quote=引用 16 楼 zzhwxt159 的回复:]
    大哥 this.comboBox1.SelectedItem.ToString();就是你要的值了这么简单就不会发帖了!
      

  14.   

    这样的问题不值发100分
    COMBOBOX取值的问题应该简单comboBox.Text 应该就行,并且简单
    你的不行肯定是哪有问题了
    下面是比较的复杂的方法
    使用DataRowView格式化并取值        //验证密码,进入程序
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    if (comboBox1.SelectedIndex != -1)
                    {
                        //获取COMBOBOX中待定行的密码列,并验证该密码是否正确
                        DataRowView myDataRowView = (DataRowView)(comboBox1.SelectedValue);
                        if (encrypt._MD5(textBox1.Text.Trim()) == myDataRowView.Row[2].ToString())
                        {
                            this.DialogResult = DialogResult.OK;
                            _Primary._usrid = myDataRowView.Row[0].ToString().Trim();
                            _Primary._usrnm = myDataRowView.Row[1].ToString().Trim();
                        }
                        else
                        {
                            MessageBox.Show("密码错误", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            textBox1.SelectAll();
                            textBox1.Focus();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString(), "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            //格式化COMBOBOX的内容
            void comboBox1_Format(object sender, ListControlConvertEventArgs e)
            {
                try
                {
                    DataRowView myDataRowView = (DataRowView)(e.ListItem);
                    if (myDataRowView != null)
                    {
                        e.Value = String.Format("{0} - {1}", myDataRowView["USID"].ToString(), myDataRowView["USNM"]);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString(), "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
      

  15.   

    comboBox1.DataSource = ado._Table("SELECT USID,USNM,USPW FROM USR_MF WHERE ENDD>GETDATE()");
      

  16.   

    说实话,看来一些回复,看到LZ说不是这么简单地,我开始不理解LZ问的问题了……
    LZ到底想要问什么?
      

  17.   

    在comboBox1的autorostpack属性上设置为true就可以了
      

  18.   

    selectSql = "select ID from 总表 where 类型 =‘ " + comboBox.Text + "’ ";  少了单引号;
    并且要将格式设置为DropDownList。
    多谢各位的参与!