C# 如何仅为数据集C中的数据设置checkedlistbox复选框#

C# 如何仅为数据集C中的数据设置checkedlistbox复选框#,c#,winforms,visual-studio,visual-studio-2008,C#,Winforms,Visual Studio,Visual Studio 2008,vs 2008-C# 我的checkedlistbox有问题,有人能帮我吗,或者告诉我该怎么做来解决这个问题 我有一个复选框,里面有作业。 我想检查从数据集中分配给员工的作业,并仅检查这些作业是否为真。。 问题是当它检查第一个作业是否为真时, 它从foreach循环中出来并抛出异常。 “此枚举数绑定到的列表已被修改。仅当列表未更改时,才能使用枚举数。” 这是我写的代码 string sSQL="select JOBNO from RentalVehicle"; dataset ds = muns

vs 2008-C#

我的checkedlistbox有问题,有人能帮我吗,或者告诉我该怎么做来解决这个问题

我有一个复选框,里面有作业。 我想检查从数据集中分配给员工的作业,并仅检查这些作业是否为真。。 问题是当它检查第一个作业是否为真时, 它从foreach循环中出来并抛出异常。 “此枚举数绑定到的列表已被修改。仅当列表未更改时,才能使用枚举数。” 这是我写的代码

string sSQL="select JOBNO from RentalVehicle";
dataset ds = munshi.executeDS(sSQL,"Jobs").Tables["Jobs"];

foreach(DataRow Erow in ds.Rows)    
{
    int CLB_RowNo = 0;

    //Jobdetail(2010-0191, HWS-01, ISB-6,KAD2-2, MAINT-01, PMO-2011-0052)
    string[] JNos = Erow["JOBNO"].ToString().Split(', ');   

    string SelectedJob = "", AJob = "";

    // Looping CLB_JobNo(CheckedListBox)
    foreach (Object obj in CLB_JobNo.Items) 
    {
        int i = 0;
        SelectedJob = obj.ToString();
        foreach (string part in JNos)
        {
            AJob = JNos[i].ToString();
            if (SelectedJob == AJob)
            {
                CLB_JobNo.SetItemChecked(CLB_RowNo, true);
            }
            i++;
        }
        CLB_RowNo++;
    }
}   

您可以先创建一个项目数组,然后对其进行迭代

 Object[] jobs = CLB_JobNo.Items.Cast<Object>().ToArray();
 foreach (Object obj in jobs)
 {
     SelectedJob = obj.ToString();
     if (JNos.Contains(SelectedJob))
     {
         CLB_JobNo.SetItemChecked(CLB_RowNo, true);
     }
     CLB_RowNo++;
 }
Object[]jobs=CLB_JobNo.Items.Cast().ToArray();
foreach(作业中的对象对象对象)
{
SelectedJob=obj.ToString();
if(JNos.Contains(SelectedJob))
{
CLB_JobNo.SetItemChecked(CLB_RowNo,true);
}
CLB_RowNo++;
}

尝试
for
循环,而不是
foreach
循环,并根据index@Habib谢谢你,你解决了我的问题。你的小帖子很有帮助。