public new object Clone()
        {
            DataRow dr1 = this.Dr.Table.NewRow();

            dr1.ItemArray = this.Dr.ItemArray.Clone() as object[];
            if (dr1[MDB_ScheduleItem.Column_UniqueID] == null || dr1[MDB_ScheduleItem.Column_UniqueID] == DBNull.Value)
            {
                dr1[MDB_ScheduleItem.Column_UniqueID] = MDB_ScheduleDataProvider.GetNextID();
            }
            MDB_ScheduleItem item1 = new MDB_ScheduleItem(dr1);

            if (dr1[MDB_ScheduleItem.Column_RecurrenceRule].Equals(lastRecurrenceRule))
            {
                item1.recurrenceRuleID       = this.recurrenceRuleID;
                item1.dirtyFlagExplicitlySet = this.dirtyFlagExplicitlySet;
                item1.UniqueID = MDB_ScheduleDataProvider.GetNextID();
            }
            lastRecurrenceRule = dr1[MDB_ScheduleItem.Column_RecurrenceRule].ToString();
            return(item1);
        }
        public MDB_ScheduleDataProvider(string MDBpathName)
        {
            itemsToDelete = new List <DataRow>();

            MDB_ScheduleDataProvider.ScheduleDataProvider = this;

            MDB_ScheduleDataProvider.scheduleDataSet = new DataSet(DataSet_Name);

            string connString = @"Provider=Microsoft.JET.OLEDB.4.0;data source=" + MDBpathName;

            // string connString = @"Provider=Microsoft.JET.OLEDB.4.0;data source=" + GetPath(@"Data\nwind.mdb");

            connection = new OleDbConnection(connString);

            string sqlString = "SELECT * FROM " + Table_Markers;

            dataAdapter = new OleDbDataAdapter(sqlString, connection);
            dataAdapter.Fill(scheduleDataSet, Table_Markers);

            sqlString   = "SELECT * FROM " + Table_Labels;
            dataAdapter = new OleDbDataAdapter(sqlString, connection);
            dataAdapter.Fill(scheduleDataSet, Table_Labels);

            sqlString   = "SELECT * FROM " + Table_Reminders;
            dataAdapter = new OleDbDataAdapter(sqlString, connection);
            dataAdapter.Fill(scheduleDataSet, Table_Reminders);



            sqlString   = "SELECT * FROM " + Table_Appointments;
            dataAdapter = new OleDbDataAdapter(sqlString, connection);
            dataAdapter.Fill(scheduleDataSet, Table_Appointments);

            nextID = int.MinValue;
            //  connection.Close();
        }