private void cmbTables_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                this.dataGridView1.DataSource = ds.Tables[this.cmbTables.Text];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }ds里面有三个表Student,Course,SC
我想让COMBOBOX的TEXT每变一次,DATAGRIDVIEW的内容就跟着变化,上面的代码做不了求解,万分感谢,菜鸟一个,这个问题昨天搞了我一晚上

解决方案 »

  1.   

    把COMBOBOX的显示属性改成dropDownList,然后加断点跟踪下,看是不是数据源的问题~
      

  2.   

    我加断点试了一下,当我下拉改变COMBOBOX的TEXT的时候,DATAGRIDVIEW的DATASOURCE会改变的,但是窗口上GIRDVIEW没有变化
      

  3.   

    this.cmbTables.Text 这个应该有一个selectedtext,就是选中的文本。试下。
      

  4.   


            private SqlConnection cnn;//sql连接
             private SqlDataAdapter daStudent, daCourse, daSC;//三个表的dataAdapter
            private SqlCommandBuilder scbStudent, scbCourse, scbSC;//三个表的cmdBuilder
            private DataSet ds;//数据集        private void frmMain_Load(object sender, EventArgs e)
            {
                cnn = new SqlConnection("data source=(local);initial catalog=School;uid=sa;pwd=123");
                cnn.Open();
                //数据库连接
                  ds = new DataSet("School");            this.daStudent = new SqlDataAdapter("select * from Student",cnn);
                this.scbStudent = new SqlCommandBuilder(this.daStudent);
                daStudent.Fill(ds,"Student");            this.daCourse = new SqlDataAdapter("select * from Course", cnn);
                this.scbCourse = new SqlCommandBuilder(this.daCourse);
                daStudent.Fill(ds, "Course");            this.daSC = new SqlDataAdapter("select * from SC", cnn);
                this.scbSC = new SqlCommandBuilder(this.daSC);
                daStudent.Fill(ds, "SC");            this.cmbTables.Items.Add("Student");
                this.cmbTables.Items.Add("Course");
                this.cmbTables.Items.Add("SC");
                //初始化表名        }这是我的初始化,现在的问题是不管DATAGRIDVIEW的DATASOURCE是什么,得到的表都是Student那张表
      

  5.   

    ds.Tables[this.cmbTables.Text]; 先确定一下ds里面的表名称是否为Student,Course,SC ,因为默认不可能是这些名称, 然后调试看看this.cmbTables.Text是否正确
      

  6.   

    问题解决了,是我往ds里面加数据的时候,因为代码复制的关系,只填进了Student一张表
    daStudent.Fill(ds,"Student"); 
    谢谢各位了,下次复制代码小心点,呵呵
      

  7.   

    大哥,你用的都是daStudent.Fill啊private SqlConnection cnn;//sql连接 
            private SqlDataAdapter daStudent, daCourse, daSC;//三个表的dataAdapter 
            private SqlCommandBuilder scbStudent, scbCourse, scbSC;//三个表的cmdBuilder 
            private DataSet ds;//数据集         private void frmMain_Load(object sender, EventArgs e) 
            { 
                cnn = new SqlConnection("data source=(local);initial catalog=School;uid=sa;pwd=123"); 
                cnn.Open(); 
                //数据库连接 
                  ds = new DataSet("School");             this.daStudent = new SqlDataAdapter("select * from Student",cnn); 
                this.scbStudent = new SqlCommandBuilder(this.daStudent); 
                daStudent.Fill(ds,"Student"); //这里对的            this.daCourse = new SqlDataAdapter("select * from Course", cnn); 
                this.scbCourse = new SqlCommandBuilder(this.daCourse); 
                daStudent.Fill(ds, "Course"); ]
    //上面红色的换成daCourse.Fill(ds, "SC");             this.daSC = new SqlDataAdapter("select * from SC", cnn); 
                this.scbSC = new SqlCommandBuilder(this.daSC); 
                daStudent.Fill(ds, "SC");    
    //上面红色的换成daSC.Fill(ds, "SC"); 
                this.cmbTables.Items.Add("Student"); 
                this.cmbTables.Items.Add("Course"); 
                this.cmbTables.Items.Add("SC"); 
                //初始化表名         } 
      

  8.   

    this.daStudent = new SqlDataAdapter("select * from Student",cnn); 
    daStudent 当然永远查的是"select * from Student"这个啦
      

  9.   

    我是Oracle的数据库 按照楼主的方法运行后 DataGridview什么都没有显示  是不是combobox和Datagridview需要设置啊?一下是我程序 求救!!!
    namespace DRdisplay
    {
        public partial class Form1 : Form
        {
            private OracleConnection conn; //Oracle连接
            private OracleDataAdapter daDR_2011, daDR_2012, daWUT_UNPACKER, daWUT_INDEXER;  //8个表的DataAdapter
            private OracleDataAdapter daDUT_UNPACKER, daDUT_INDEXER, daDT_MONTH, daUT_2011; //8个表的DataAdapter
            private OracleCommandBuilder ocbDR_2011, ocbDR_2012, ocbWUT_UNPACKER, ocbWUT_INDEXER; //8个表的commandBuild
            private OracleCommandBuilder ocbDUT_UNPACKER, ocbDUT_INDEXER, ocbDT_MONTH, ocbUT_2011; //8个表的commandBuild
            private DataSet ds; //数据集        public Form1()
            {
                InitializeComponent();
            }        private void comboBoxTables_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    this.dataGridView1.DataSource = ds.Tables[this.comboBoxTables.Text];
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }        private void Form1_Load(object sender, EventArgs e)
            {
                //数据库连接
                string connstr = "Data Source=DR;User ID=AT;Password=cimat;Unicode=True";
                conn = new OracleConnection(connstr);
                conn.Open();
                ds = new DataSet();            this.daDUT_UNPACKER = new OracleDataAdapter("select * from DAILYUT_UNPACKER", conn);
                this.ocbDUT_UNPACKER = new OracleCommandBuilder(this.daDUT_UNPACKER);
                daDUT_UNPACKER.Fill(ds, "DAILYUT_UNPACKER");            this.daDUT_INDEXER = new OracleDataAdapter("select * from DAILYUT_INDEXER", conn);
                this.ocbDUT_INDEXER = new OracleCommandBuilder(this.daDUT_INDEXER);
                daDUT_INDEXER.Fill(ds,"DAILYUT_INDEXER");            this.daWUT_UNPACKER = new OracleDataAdapter("select * from WEEKLYUT_UNPACKER", conn);
                this.ocbWUT_UNPACKER = new OracleCommandBuilder(this.daWUT_UNPACKER);
                daWUT_UNPACKER.Fill(ds, "WEEKLYUT_UNPACKER");            this.daWUT_INDEXER = new OracleDataAdapter("select * from WEEKLYUT_INDEXER", conn);
                this.ocbWUT_INDEXER = new OracleCommandBuilder(this.daWUT_INDEXER);
                daWUT_INDEXER.Fill(ds, "WEEKLYUT_INDEXER");            this.daDR_2011 = new OracleDataAdapter("select * from DAILYREPORT_2011", conn);
                this.ocbDR_2011 = new OracleCommandBuilder(this.daDR_2011);
                daDR_2011.Fill(ds, "DAILYREPORT_2011");            this.daDR_2012 = new OracleDataAdapter("select * from DAILYREPORT_2012", conn);
                this.ocbDR_2012 = new OracleCommandBuilder(this.daDR_2012);
                daDR_2011.Fill(ds, "DAILYREPORT_2012");            this.daUT_2011 = new OracleDataAdapter("select * from UTILIZATION_2011", conn);
                this.ocbUT_2011 = new OracleCommandBuilder(this.daUT_2011);
                daDR_2011.Fill(ds, "UTILIZATION_2011");            this.daDT_MONTH = new OracleDataAdapter("select * from DOWNTIME_MONTH", conn);
                this.ocbDT_MONTH = new OracleCommandBuilder(this.daDT_MONTH);
                daDT_MONTH.Fill(ds, "DOWNTIME_MONTH");            //初始化表名
                this.comboBoxTables.Items.Add("DAILYUT_UNPACKER");
                this.comboBoxTables.Items.Add("DAILYUT_INDEXER");
                this.comboBoxTables.Items.Add("WEEKLYUT_UNPACKER");
                this.comboBoxTables.Items.Add("WEEKLYUT_INDEXER");
                this.comboBoxTables.Items.Add("DAILYREPORT_2011");
                this.comboBoxTables.Items.Add("DAILYREPORT_2012");
                this.comboBoxTables.Items.Add("UTILIZATION_2011");
                this.comboBoxTables.Items.Add("DOWNTIME_MONTH");
            }
        }
    }