【问题标题】:Items collection cannot be modified when the DataSource property is set. c#设置 DataSource 属性时无法修改项目集合。 C#
【发布时间】:2013-12-12 02:24:11
【问题描述】:

我在尝试插入新项目到组合框时遇到错误

错误:设置 DataSource 属性时无法修改 Items 集合。

string connectionstring = "MultipleActiveResultSets=True;Data Source=ECSTSRD;Initial Catalog=PMIDB;User ID=pnpuser;Password=pnpuser123";
sqlConnection myconnection = new SqlConnection(connectionstring);

myconnection.Open();
string custPOsql = "INSERT INTO cust_po (cust_code, po_no) VALUES (@cust_code, @po_no)";
       SqlCommand custPOcom = new SqlCommand(custPOsql, myconnection);
       custPOcom.Parameters.AddWithValue("@cust_code", cboCustCode.Text);
       custPOcom.Parameters.AddWithValue("@po_no", cboPO.Text);
       custPOcom.ExecuteNonQuery();
       MessageBox.Show("Insert Successfully", "Insert");
       cboPO.Items.Add(cboPO.Text);

仅供参考,我在表单加载中绑定了 PO 组合框的数据源。

我在 stackoverflow 和其他论坛中发现了一些类似的问题,他们提到的方式是使用 cboPO.Items.Add(cboPO.Text) 将新项目添加到组合框中,但我无法使用它,因为显示的错误。

有谁知道是什么问题,请帮忙。

提前致谢。

【问题讨论】:

标签: c# winforms combobox


【解决方案1】:

您的 cboPO 控件已与显示数据的数据源绑定

如果想在组合框中添加行,请使用它

DataTable dt = cboPO.Datasource;
DataRow dr = dt.NewRow();
dr["ColumnName"/Index number] = cboPO.Text;

【讨论】:

    【解决方案2】:

    您可以使用cboPO.Items.Add(),也可以按照您的方式绑定到一个列表。

    “仅供参考,我在表单加载中绑定了 PO 组合框的数据源。”

    它告诉您不能将组合框绑定到数据源,然后也尝试将项目直接添加到组合框。这是一个非此即彼的事情 - 你不能同时做。

    您必须将项目添加到您最初在 Form_Load 事件中绑定到组合框的任何对象,然后它们应该自动反映在组合框中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2018-10-03
      • 2017-02-23
      相关资源
      最近更新 更多