//数据库pubs中有表jobs
//jobs中有2个字段jobs_id(smalint),jobs_desc(varchar)
//当点击这个comboBox时在dataGridView中显示数据
public Form1()
        {
            InitializeComponent();
            select();
        }
        void select()
        {            DataSet dt = new DataSet();
            string conn = "server=.;database=pubs;uid=sa;pwd=;";
            using (SqlConnection cn = new SqlConnection(conn))
            {
                string sql = "select * from jobs";
                SqlDataAdapter dr = new SqlDataAdapter(sql, cn);
                dr.Fill(dt,"jobs");
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "jobs.job_id";
                comboBox1.ValueMember = "jobs.job_id";
             }
   
        }        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataSet dt = new DataSet();
            string conn = "server=.;database=pubs;uid=sa;pwd=;";
            using (SqlConnection cn = new SqlConnection(conn))
            {
                string sql = "select *from jobs where job_id=@job_id";
                SqlDataAdapter dr = new SqlDataAdapter(sql, cn);
                dr.SelectCommand.Parameters.AddWithValue("@job_id", comboBox1.ValueMember.ToString());
                dr.Fill(dt);
                dataGridView1.DataSource = dt;
            }
        }
//晕,这东西做了我3个小时没做出来真是气死我了,试了好几种方法

解决方案 »

  1.   

    我这是C/S没这个dataGridView没这个属性
      

  2.   

    在点击的时候我用了个 MessageBox.Show(comboBox1.ValueMember);弹出的是jobs.job_id可那个下拉框又是真实的数据
      

  3.   

    试试 dataGridView1.DataSource = dt.Tables[0]
      

  4.   

    测试通过
    public Form1()
            {
                InitializeComponent();
                select();
            }        void select()
            {            DataSet dt = new DataSet();
                string conn = "server=.;database=pubs;uid=sa;pwd=;";
                using (SqlConnection cn = new SqlConnection(conn))
                {
                    string sql = "select * from jobs";
                    SqlDataAdapter dr = new SqlDataAdapter(sql, cn);
                    dr.Fill(dt, "jobs");
                    
                    comboBox1.DisplayMember = "job_id";
                    comboBox1.ValueMember = "job_id";
                    comboBox1.DataSource = dt.Tables [0];
                }
            }        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                DataSet dt = new DataSet();
                string conn = "server=.;database=pubs;uid=sa;pwd=;";
                using (SqlConnection cn = new SqlConnection(conn))
                {
                    cn.Open();                string s = comboBox1.Items[0].ToString();                SqlCommand command = cn.CreateCommand();
                    command.CommandText = "select *from jobs where job_id=@job_id";
                    command.Parameters.Add(new SqlParameter("job_id", SqlDbType.SmallInt, 10));
                    command.Parameters[0].Value = int.Parse(comboBox1.SelectedValue.ToString());                SqlDataAdapter da = new SqlDataAdapter(command);
                    da.Fill(dt);                dataGridView1.DataSource = dt.Tables[0];
                }        }
      

  5.   

    主要看这里,ValueMember 和DisplayMember comboBox1.DisplayMember = "job_id";
                    comboBox1.ValueMember = "job_id";
                    comboBox1.DataSource = dt.Tables [0];
      

  6.   

    来晚了。comboBox1.DisplayMember = "jobs.job_id";
    comboBox1.ValueMember = "jobs.job_id";
    写程序要仔细。