0

得到标题显示的错误信息。但我想要的是从数据表中读取一行,插入我的日历控件,然后删除这一行,然后读取下一行,插入,然后删除下一行。

但我得到了这个错误

下面是我的代码

for (int i = 0; i < dtRowCount; i++)
        {
            var tempName = tempDT.Rows[i]["IDENT"].ToString();

            c = new Contact();
            c.FirstName = tempDT.Rows[0]["IDENT"].ToString();
            c.Tag = tempDT.Rows[0]["EVENT_ID"].ToString();
            _calendar.Schedule.Contacts.Add(c);
            _calendar.Contacts.Add(c);

            for (int j = 0; j < dtRowCount; j++)
            {
                if (tempName == tempDT.Rows[j]["TAG_IDENT"].ToString())
                {
                    #region Appointment

                    var app = new Appointment();

                    app.HeaderText = tempDT.Rows[i]["NAME"].ToString();

                    exlStarTime = tempDT.Rows[i]["START"].ToString();
                    DateTime myStartDate = DateTime.ParseExact(exlStarTime,
                        "dd-MMM-yy hh.mm.ss.fffffff00 tt",
                        System.Globalization.CultureInfo.InvariantCulture);

                    exlEndTime = tempDT.Rows[i]["END"].ToString();
                    DateTime myEndDate = DateTime.ParseExact(exlEndTime,
                        "dd-MMM-yy hh.mm.ss.fffffff00 tt",
                        System.Globalization.CultureInfo.InvariantCulture);

                    app.Tag = tempDT.Rows[i]["TYPE_CODE"].ToString();
                    app.StartTime = myStartDate;
                    app.EndTime = myEndDate;

                    app.Contacts.Add(c);
                    _calendar.Schedule.Items.Add(app);

                    ItemStyle style = app.Style;
                    style.HeaderTextColor = Color.White;
                    style.Brush.Image = "none";
                    switch (tempDT.Rows[i]["EVENT_TYPE_CODE"].ToString())
                    {
                        case event1Color:
                            style.Brush.Color = Color.OrangeRed;
                            break;

                        case event2Color:
                            style.Brush.Color = Color.Orange;
                            break;

                        case event3Color:
                            style.Brush.Color = Color.DodgerBlue;
                            break;
                    }

                    #endregion

                    tempDT.Rows[j].Delete();
                    //j = j - 1;
                    j = j + 1;
                }
            }
        }

非常感谢

4

2 回答 2

1

我认为问题是由于您正在修改您正在迭代的集合。修复它的最简单方法是分两步完成。首先,您在日历中插入您需要的所有内容,然后在完成插入后开始删除它们。

于 2014-03-05T16:50:45.353 回答
0

这是因为您需要在删除所有行后调用 AcceptChanges() 方法。

tempDT.AcceptChanges();

我希望这对你有用!

于 2016-11-16T19:37:13.883 回答