主要代码:
点击“打开表格”按钮后执行下面的代码,打开combobox控件“comboBoxDataName”所指定的表格。
其余各个变量都定义为外部静态变量,提供给多个模块调用。        private void buttonOpen_Click(object sender, EventArgs e)
        {
            try
            {              
              conn.Open();              //更新cmdStr和da两个变量的值.
              string cmdStr = "select * from " + (string)comboBoxDataName.Text;
              da = null;
              da = new OleDbDataAdapter(cmdStr, conn);
              
              //开始操作
              da.Fill(dataDataSet, "mydata");
              dataGridView1.DataSource = null;
              
              dataGridView1.DataSource = dataDataSet.Tables["mydata"];
              dataGridView1.ReadOnly = false;
              dataGridView1.Update();
              dataGridView1.Refresh();              conn.Close();            }
            catch
           {
                MessageBox.Show("指定的表格不存在!", "错误!");
           }现在的问题是:在打开第一个表格之后,更改combobox控件的值,点击按钮打开第二个表格,却发现第一次打开的表格内容还在,第二表格的内容被放置到第一个表格右侧的新建列中去了。

解决方案 »

  1.   

    问题已经解决,在别名上。        private void buttonOpen_Click(object sender, EventArgs e)
            {
                
                try
                {              
                  conn.Open();              //更新cmdStr和da两个变量的值.
                  tableCounter = tableCounter + 1;//.........................
                  tablestr = "mydata" + (char )tableCounter;//...............增加两变量              string cmdStr = "select * from " + (string)comboBoxDataName.Text;
                  da = null;
                  da = new OleDbDataAdapter(cmdStr, conn);
                  
                  //开始操作
                  da.Fill(dataDataSet, tablestr );
                  dataGridView1.DataSource = null;
                  
                  dataGridView1.DataSource = dataDataSet.Tables[tablestr ];
                  dataGridView1.ReadOnly = false;
                  dataGridView1.Update();
                  dataGridView1.Refresh();              conn.Close();            }
                catch
               {
                    MessageBox.Show("指定的表格不存在!", "错误!");
               }
      

  2.   

    又找到一种方法,应该更规范。
    在重新da.Fill(dataDataSet, tablestr );之前,先:
    dataDataSet.Tables.clear();即可。