mysql 如何通过组合框切换不同的表而不添加额外的列

t5fffqht  于 2023-04-19  发布在  Mysql
关注(0)|答案(1)|浏览(142)

我有一个名为appmondb的数据库,我想使用组合框来切换表。如果我先选择ids表,这没有问题,但如果我接下来选择accounts表,id和accounts字段将同时出现。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
        currentdt.Clear();//clear table 
        dataGridView1.DataSource = null;

        MySqlDataAdapter adapter = new MySqlDataAdapter();
        MySqlCommand cmd;
        string sql = "SELECT * FROM " + comboBox1.Text;

        cmd = new MySqlCommand(sql, Connection.connMaster);

        adapter.SelectCommand = cmd;
        adapter.Fill(currentdt);

        dataGridView1.DataSource = currentdt;
        totalPage = calculateTotalPages(currentdt);//update totalPage
}

first I choose ids table
after that, I select accounts table
我有话要说应该是.fill()或者dataset和datatable的措辞

ni65a41a

ni65a41a1#

DataTable上调用Clear会删除所有行,但不会删除列,因此当您为新查询调用Fill时,它们仍然存在。您需要每次创建一个新的DataTable,否则Clear也会删除Columns集合。
我很确定清除DataSource也不会从网格中删除任何列,所以你还必须Clear网格的Columns集合。像这样:

dataGridView1.DataSource = null;
dataGridView1.Columns.Clear();
currentdt.Clear();
currentdt.Columns.Clear();

相关问题