首页 > 解决方案 > 编译错误 CS0029 无法将类型“ComboBox.ObjectCollection”隐式转换为“CheckedListBox.ObjectCollection”

问题描述

我在这一行的代码中有这个错误

ObjectCollection items = comboBox1.Items;

错误是:

"Error CS0029   Cannot implicitly convert type
'System.Windows.Forms.ComboBox.ObjectCollection' to
'System.Windows.Forms.CheckedListBox.ObjectCollection'"

我需要帮助来解决它,请任何人都可以帮助我吗?我应该在这里做什么?

private void Button3_Click(object sender, EventArgs e)
{
    DataTable dataTable = new DataTable();
    ObjectCollection items = comboBox1.Items;
    foreach (var item in items)
    {
        MyClass myClass = (MyClass)item;
        string constr = string.Format("Provider = Microsoft.ACE.OLEDB.12.0; Data Source =" 
                        + myClass.Path + ";Extended Properties = \"Excel 12.0; HDR=Yes;\"; ");
        OleDbConnection con = new OleDbConnection(constr);
        DataTable dt = new DataTable();
        using (OleDbCommand comm = new OleDbCommand())
        {
            comm.CommandText = "Select * From[" + myClass.TableName + "]";
            comm.Connection = con;
            using (OleDbDataAdapter da = new OleDbDataAdapter())
            {
                da.SelectCommand = comm;
                da.Fill(dt);
               dataTable.Merge(dt);
            }
        }
    }

    dataGridView1.DataSource = dataTable;
}

标签: c#compiler-errorscompilation

解决方案


您可能是using另一个也定义此类型的命名空间。显式声明类型:

System.Windows.Forms.ComboBox.ObjectCollection items = comboBox1.Items;

或使用 var:

var items = comboBox1.Items;

推荐阅读