我有一个名为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的措辞
1条答案
按热度按时间ni65a41a1#
在
DataTable
上调用Clear
会删除所有行,但不会删除列,因此当您为新查询调用Fill
时,它们仍然存在。您需要每次创建一个新的DataTable
,否则Clear
也会删除Columns
集合。我很确定清除
DataSource
也不会从网格中删除任何列,所以你还必须Clear
网格的Columns
集合。像这样: