首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新ComboBox

刷新ComboBox
EN

Stack Overflow用户
提问于 2015-08-10 09:22:32
回答 3查看 3.4K关注 0票数 0

在单击“删除”按钮后,我试图使ComboBox自身刷新,但当我尝试此操作时,它会给出错误:

当设置DataSource属性时,无法修改项集合。

这是来自Delete按钮的代码:

代码语言:javascript
复制
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的代码

代码语言:javascript
复制
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);
   } 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-10 09:27:54

设置DataSource-属性会自动将ComboBox对到数据库表,并防止您仅手动修改GUI-元素。

要强制刷新ComboBox (尽管您可能不需要,查看表单应该如何处理它),请尝试如下:

代码语言:javascript
复制
comboBox1.DataSource = null;
comboBox1.DataSource = dtRecord;
票数 2
EN

Stack Overflow用户

发布于 2015-08-10 09:27:47

当设置DataSource属性时,无法修改项集合。

错误消息告诉您,您已将DataSource属性设置为"comboBox1“。因此,您应该删除DataSource

代码语言:javascript
复制
comboBox1.DataSource = null;

或者,如果您想保留DataSource,不要尝试自己删除项(您应该在dataSource表中,而不是在comboBox项中这样做)

票数 2
EN

Stack Overflow用户

发布于 2015-08-10 09:37:37

据我所知,您的ComboBox上有一个表列表,您希望删除所选的项:

第一件事:如果您使用DDL查询(如DROP、CREATE、ALTER.A.)和一些DML查询(如删除、更新、插入..)您应该使用ExecuteNonQuery方法,而不是像以前那样使用ExecuteReader方法

2:确保将AutoPostBack控件上的属性ComboBox设置为true

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31915924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档