在单击“删除”按钮后,我试图使ComboBox自身刷新,但当我尝试此操作时,它会给出错误:
当设置DataSource属性时,无法修改项集合。
这是来自Delete按钮的代码:
private void deleteBttn_Click(object sender, EventArgs e)
{
con.Open();
string Query = "DROP TABLE [" + comboBox1.SelectedValue.ToString() + "]";
SqlCommand cmd = new SqlCommand(Query, con);
SqlDataReader myReader;
try
{
myReader = cmd.ExecuteReader();
MessageBox.Show("Deleted");
this.comboBox1.Items.Remove(this.comboBox1.SelectedItem);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
}这是来自ComboBox的代码
try
{
con.Open();
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Select TABLE_NAME from INFORMATION_SCHEMA.tables";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
comboBox1.DataSource = dtRecord;
comboBox1.DisplayMember = "table_name";
comboBox1.ValueMember = "table_name";
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
} 发布于 2015-08-10 09:27:54
设置DataSource-属性会自动将ComboBox对到数据库表,并防止您仅手动修改GUI-元素。
要强制刷新ComboBox (尽管您可能不需要,查看表单应该如何处理它),请尝试如下:
comboBox1.DataSource = null;
comboBox1.DataSource = dtRecord;发布于 2015-08-10 09:27:47
当设置DataSource属性时,无法修改项集合。
错误消息告诉您,您已将DataSource属性设置为"comboBox1“。因此,您应该删除DataSource
comboBox1.DataSource = null;或者,如果您想保留DataSource,不要尝试自己删除项(您应该在dataSource表中,而不是在comboBox项中这样做)
发布于 2015-08-10 09:37:37
据我所知,您的ComboBox上有一个表列表,您希望删除所选的项:
第一件事:如果您使用DDL查询(如DROP、CREATE、ALTER.A.)和一些DML查询(如删除、更新、插入..)您应该使用ExecuteNonQuery方法,而不是像以前那样使用ExecuteReader方法
2:确保将AutoPostBack控件上的属性ComboBox设置为true
https://stackoverflow.com/questions/31915924
复制相似问题