示例#1
0
        private void LoadOldQueue()
        {
            if (_linksStart != null && _linksStart.Count > 0)
            {
                foreach (var link in _linksStart)
                {
                    _linkQueue.Enqueue(new JobFindNew()
                    {
                        Id = Common.CrcProductID(link), Deep = 0, ParentId = 0, Url = link
                    });
                }
                LogImportantInfo(string.Format("Loaded {0} begin links", _linksStart.Count));
            }

            using (var adapter = new QueueTableAdapter())
            {
                adapter.Connection.ConnectionString = ConfigCrawler.ConnectionCrawlerQueue;
                var lst = new List <JobFindNew>();
                var tbl = adapter.FillByPageOfCompany(_companyId, 10000, 1);
                foreach (var a in tbl.Rows)
                {
                    DsQTCrawler.QueueRow row = a as DsQTCrawler.QueueRow;
                    _linkQueue.Enqueue(new JobFindNew()
                    {
                        Id       = Common.CrcProductID(row.Url),
                        Deep     = row.Deep,
                        ParentId = row.ParentId,
                        Url      = row.Url
                    });
                }
                adapter.Connection.Close();
            }
        }
示例#2
0
        public void End()
        {
            string strLog = string.Format("End crawler {0}", _typeEnd);

            if (EventReportRun != null)
            {
                EventReportRun(strLog);
            }
            _log.Info(strLog);


            this.UpdateEndCrawl(new CrawlerSessionLog()
            {
                CompanyId              = _companyId,
                Domain                 = _company.Domain,
                StartAt                = _timeStart,
                EndAt                  = DateTime.Now,
                CountVisited           = _countVisited,
                Ip                     = Dns.GetHostName(),
                Session                = _session,
                TypeRun                = "AUTO",
                TypeCrawler            = 0,
                CountChange            = _countNewProduct,
                TotalProduct           = _company.TotalProduct,
                CountProduct           = 0,
                TypeEnd                = _typeEnd.ToString(),
                NumberDuplicateProduct = _hsDuplicateProduct.Count
            });

            if (_typeEnd != TypeEnd.Success)
            {
                SaveChange();
            }
            else
            {
                var queueTableAdapter = new QueueTableAdapter();
                queueTableAdapter.Connection.ConnectionString = ConfigCrawler.ConnectionCrawlerQueue;
                queueTableAdapter.DeleteByCompanyId(_companyId);
                queueTableAdapter.Connection.Close();
                _cacheCrcVisited.RemoveCrcVited(_companyId);
            }
            _cacheWaitCrawler.SetRemoveRunningCrawler(_companyId);
            _cacheWaitCrawler.SetNexFindNew(_companyId, 1);

            _tokenSource.Cancel();
        }
示例#3
0
 private void SaveChange()
 {
     try
     {
         using (var adapter = new QueueTableAdapter())
         {
             _log.Info(string.Format("Save to queue: {0} add", _linkQueue.Count));
             adapter.Connection.ConnectionString = ConfigCrawler.ConnectionCrawlerQueue;
             DsQTCrawler.QueueDataTable queueTable = new DsQTCrawler.QueueDataTable();
             foreach (var job in _linkQueue)
             {
                 var row = queueTable.NewQueueRow();
                 row.Deep      = job.Deep;
                 row.Id        = 0;
                 row.ParentId  = job.ParentId;
                 row.Url       = job.Url;
                 row.CompanyId = _companyId;
                 queueTable.AddQueueRow(row);
             }
             SqlBulkCopy bulkCopy = new SqlBulkCopy
                                        (adapter.Connection,
                                        SqlBulkCopyOptions.TableLock |
                                        SqlBulkCopyOptions.FireTriggers |
                                        SqlBulkCopyOptions.UseInternalTransaction,
                                        null)
             {
                 DestinationTableName = "Queue"
             };
             adapter.Connection.Open();
             bulkCopy.WriteToServer(queueTable);
             adapter.Connection.Close();
         }
     }
     catch (Exception ex0)
     {
     }
 }
示例#4
0
 public QtCrawlerQueueAdapter(string connection)
 {
     adapter = new QueueTableAdapter();
     adapter.Connection.ConnectionString = connection;
 }
示例#5
0
        private void Convert()
        {
            string sql;

            formConvertProgress.MaximumValue = 15;
            formConvertProgress.CurrentTable = "Master";

            ConvertMasterTable();

            #region CD
            formConvertProgress.CurrentTable = "CD";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsCD = new List <FieldConvert>();

            fieldsCD.Add(new FieldConvert("IDCD", "CDID"));
            fieldsCD.Add(new FieldConvert("dwGesamtlaenge", "Length"));
            fieldsCD.Add(new FieldConvert("cAnzahlLieder", "NumberOfTracks"));
            fieldsCD.Add(new FieldConvert("bCDSampler", "IsSampler"));
            fieldsCD.Add(new FieldConvert("wNummerImSet", "SetNumber"));
            fieldsCD.Add(new FieldConvert("IDCDSet", "SetID"));
            fieldsCD.Add(new FieldConvert("IDArtist", "ArtistID"));
            fieldsCD.Add(new FieldConvert("IDKategorie", "CategoryID"));
            fieldsCD.Add(new FieldConvert("IDMedium", "MediumID"));
            fieldsCD.Add(new FieldConvert("szTitel", "Title"));
            fieldsCD.Add(new FieldConvert("szDatum", "Date"));
            fieldsCD.Add(new FieldConvert("szArchivNummer", "ArchiveNumber"));
            fieldsCD.Add(new FieldConvert("szPfadBitmap", "FrontCover"));
            fieldsCD.Add(new FieldConvert("szKennzeichen", "Codes"));
            fieldsCD.Add(new FieldConvert("szKommentar", "Comment"));
            fieldsCD.Add(new FieldConvert("szFeld1", "User1"));
            fieldsCD.Add(new FieldConvert("szFeld2", "User2"));
            fieldsCD.Add(new FieldConvert("szFeld3", "User3"));
            fieldsCD.Add(new FieldConvert("szFeld4", "User4"));
            fieldsCD.Add(new FieldConvert("szFeld5", "User5"));
            fieldsCD.Add(new FieldConvert("C_Type", "Type"));
            fieldsCD.Add(new FieldConvert("C_YearRecorded", "YearRecorded"));
            fieldsCD.Add(new FieldConvert("C_Copyright", "Copyright"));
            fieldsCD.Add(new FieldConvert("C_BackCoverBitmap", "BackCover"));
            fieldsCD.Add(new FieldConvert("C_CDLabelBitmap", "CDLabelCover"));
            fieldsCD.Add(new FieldConvert("C_Rating", "Rating"));
            fieldsCD.Add(new FieldConvert("C_Label", "Label"));
            fieldsCD.Add(new FieldConvert("C_URL", "URL"));
            fieldsCD.Add(new FieldConvert("C_Price", "Price"));
            fieldsCD.Add(new FieldConvert("C_UPC", "UPC"));
            fieldsCD.Add(new FieldConvert("C_Original", "IsOriginal"));
            fieldsCD.Add(new FieldConvert("C_IDComposer", "ComposerID"));
            fieldsCD.Add(new FieldConvert("C_Location", "Location"));
            fieldsCD.Add(new FieldConvert("C_Language", "Language"));

            CDTableAdapter             cdAdap = new CDTableAdapter(sdfDatabase);
            ConvertDataSet.CDDataTable cd     = new ConvertDataSet.CDDataTable();
            cdAdap.Fill(cd);

            // Alle Identities einlesen
            Dictionary <int, string> identites = ReadIdentities();

            CopyData("CD", fieldsCD, cd, identites);

            SqlCeCommand cmd = new SqlCeCommand("SET IDENTITY_INSERT CD ON", sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            int count = 0;
            foreach (DataRow row in cd.Rows)
            {
                try
                {
                    cdAdap.Update(row);
                }
                catch (Exception e)
                {
                    FormUnhandledException formUnhandledException = new FormUnhandledException(e);

                    formUnhandledException.ShowDialog();
                }

                if ((count % 100) == 0)
                {
                    formConvertProgress.CurrentTable = string.Format("{0} ({1} Einträge)", "Track", count);
                    formConvertProgress.Refresh();
                    Application.DoEvents();
                }

                count++;
            }


            cmd = new SqlCeCommand("SET IDENTITY_INSERT CD OFF", sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd = new SqlCeCommand("SELECT MAX(CDID) FROM CD", sdfDatabase.Connection);
            int maxId = (int)cmd.ExecuteScalar() + 1;

            cmd = new SqlCeCommand(string.Format("ALTER TABLE CD ALTER COLUMN CDID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            #endregion

            #region Track
            formConvertProgress.CurrentTable = "Track";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsTrack = new List <FieldConvert>();
            fieldsTrack.Add(new FieldConvert("IDLied", "TrackID"));
            fieldsTrack.Add(new FieldConvert("IDCD", "CDID"));
            fieldsTrack.Add(new FieldConvert("IDArtist", "ArtistID"));
            fieldsTrack.Add(new FieldConvert("wLiedNummer", "TrackNumber"));
            fieldsTrack.Add(new FieldConvert("szTitel", "Title"));
            fieldsTrack.Add(new FieldConvert("dwLaenge", "Length"));
            fieldsTrack.Add(new FieldConvert("wBpm", "Bpm"));
            fieldsTrack.Add(new FieldConvert("szNameRecDatei", "SoundFile"));
            fieldsTrack.Add(new FieldConvert("szKennzeichen", "Codes"));
            fieldsTrack.Add(new FieldConvert("szKommentar", "Comment"));
            fieldsTrack.Add(new FieldConvert("szLiedtext", "Lyrics"));
            fieldsTrack.Add(new FieldConvert("szFeld1", "User1"));
            fieldsTrack.Add(new FieldConvert("szFeld2", "User2"));
            fieldsTrack.Add(new FieldConvert("szFeld3", "User3"));
            fieldsTrack.Add(new FieldConvert("szFeld4", "User4"));
            fieldsTrack.Add(new FieldConvert("szFeld5", "User5"));
            fieldsTrack.Add(new FieldConvert("L_TrackFormat", "TrackFormat"));
            fieldsTrack.Add(new FieldConvert("L_BitRate", "BitRate"));
            fieldsTrack.Add(new FieldConvert("L_SampleRate", "SampleRate"));
            fieldsTrack.Add(new FieldConvert("L_Channels", "Channels"));
            fieldsTrack.Add(new FieldConvert("L_YearRecorded", "YearRecorded"));
            fieldsTrack.Add(new FieldConvert("L_Checksum", "Checksum"));
            fieldsTrack.Add(new FieldConvert("L_Rating", "Rating"));
            fieldsTrack.Add(new FieldConvert("L_IDCategory", "CategoryID"));
            fieldsTrack.Add(new FieldConvert("L_IDComposer", "ComposerID"));
            fieldsTrack.Add(new FieldConvert("L_Language", "Language"));
            TrackTableAdapter             trackAdap = new TrackTableAdapter(sdfDatabase);
            ConvertDataSet.TrackDataTable track     = new ConvertDataSet.TrackDataTable();
            trackAdap.Fill(track);

            CopyData("Lied", fieldsTrack, track);

            sql = string.Format("SET IDENTITY_INSERT Track ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            count = 0;
            foreach (DataRow row in track.Rows)
            {
                try
                {
                    trackAdap.Update(row);
                }
                catch (Exception e)
                {
                    FormUnhandledException formUnhandledException = new FormUnhandledException(e);

                    formUnhandledException.ShowDialog();
                }

                if ((count % 100) == 0)
                {
                    formConvertProgress.CurrentTable = string.Format("{0} ({1} Einträge)", "Track", count);
                    formConvertProgress.Refresh();
                    Application.DoEvents();
                }

                count++;
            }

            sql = string.Format("SET IDENTITY_INSERT Track OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd   = new SqlCeCommand("SELECT MAX(TrackID) FROM Track", sdfDatabase.Connection);
            maxId = (int)cmd.ExecuteScalar() + 1;

            cmd = new SqlCeCommand(string.Format("ALTER TABLE Track ALTER COLUMN TrackID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            #endregion

            #region Artist
            formConvertProgress.CurrentTable = "Artist";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsPersonGroup = new List <FieldConvert>();
            fieldsPersonGroup.Add(new FieldConvert("IDArtist", "PersonGroupID"));
            fieldsPersonGroup.Add(new FieldConvert("szArtistName", "Name"));
            fieldsPersonGroup.Add(new FieldConvert("sSortKey", "SaveAs"));
            fieldsPersonGroup.Add(new FieldConvert("nGroup", "Type"));
            fieldsPersonGroup.Add(new FieldConvert("nSex", "Sex"));
            fieldsPersonGroup.Add(new FieldConvert("sComment", "Comment"));
            fieldsPersonGroup.Add(new FieldConvert("A_URL", "URL"));
            fieldsPersonGroup.Add(new FieldConvert("A_Country", "Country"));
            fieldsPersonGroup.Add(new FieldConvert("A_BirthDay", "BirthDay", true));
            fieldsPersonGroup.Add(new FieldConvert("A_DayOfDeath", "DayOfDeath", true));
            fieldsPersonGroup.Add(new FieldConvert("A_ImageFilename", "ImageFilename"));
            PersonGroupTableAdapter             personGroupAdap = new PersonGroupTableAdapter(sdfDatabase);
            ConvertDataSet.PersonGroupDataTable personGroup     = new ConvertDataSet.PersonGroupDataTable();
            personGroupAdap.Fill(personGroup);

            CopyData("Artist", fieldsPersonGroup, personGroup);

            sql = string.Format("SET IDENTITY_INSERT PersonGroup ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            count = 0;
            foreach (DataRow row in personGroup.Rows)
            {
                try
                {
                    personGroupAdap.Update(row);
                }
                catch (Exception e)
                {
                    FormUnhandledException formUnhandledException = new FormUnhandledException(e);

                    formUnhandledException.ShowDialog();
                }
                if ((count % 100) == 0)
                {
                    formConvertProgress.CurrentTable = string.Format("{0} ({1} Einträge)", "Artist", count);
                    formConvertProgress.Refresh();
                    Application.DoEvents();
                }
                count++;
            }

            sql = string.Format("SET IDENTITY_INSERT PersonGroup OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd   = new SqlCeCommand("SELECT MAX(PersonGroupID) FROM PersonGroup", sdfDatabase.Connection);
            maxId = (int)cmd.ExecuteScalar() + 1;

            cmd = new SqlCeCommand(string.Format("ALTER TABLE PersonGroup ALTER COLUMN PersonGroupID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion

            #region Category
            formConvertProgress.CurrentTable = "Category";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsCategory = new List <FieldConvert>();
            fieldsCategory.Add(new FieldConvert("IDKategorie", "CategoryID"));
            fieldsCategory.Add(new FieldConvert("szKategorieName", "Name"));
            fieldsCategory.Add(new FieldConvert("wOrder", "Order"));
            CategoryTableAdapter             categoryAdap = new CategoryTableAdapter(sdfDatabase);
            ConvertDataSet.CategoryDataTable categories   = new ConvertDataSet.CategoryDataTable();
            categoryAdap.Fill(categories);

            CopyData("Kategorie", fieldsCategory, categories);

            sql = string.Format("SET IDENTITY_INSERT Category ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            categoryAdap.Update(categories);

            sql = string.Format("SET IDENTITY_INSERT Category OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd   = new SqlCeCommand("SELECT MAX(CategoryID) FROM Category", sdfDatabase.Connection);
            maxId = (int)cmd.ExecuteScalar() + 1;

            cmd = new SqlCeCommand(string.Format("ALTER TABLE Category ALTER COLUMN CategoryID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion

            #region Medium
            formConvertProgress.CurrentTable = "Medium";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsMedium = new List <FieldConvert>();
            fieldsMedium.Add(new FieldConvert("IDMedium", "MediumID"));
            fieldsMedium.Add(new FieldConvert("szMedium", "Name"));
            fieldsMedium.Add(new FieldConvert("wOrder", "Order"));
            MediumTableAdapter             mediumAdap = new MediumTableAdapter(sdfDatabase);
            ConvertDataSet.MediumDataTable mediums    = new ConvertDataSet.MediumDataTable();
            mediumAdap.Fill(mediums);

            CopyData("Medium", fieldsMedium, mediums);

            sql = string.Format("SET IDENTITY_INSERT Medium ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            mediumAdap.Update(mediums);

            sql = string.Format("SET IDENTITY_INSERT Medium OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd   = new SqlCeCommand("SELECT MAX(MediumID) FROM Medium", sdfDatabase.Connection);
            maxId = (int)cmd.ExecuteScalar() + 1;

            cmd = new SqlCeCommand(string.Format("ALTER TABLE Medium ALTER COLUMN MediumID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion

            #region CDSet
            formConvertProgress.CurrentTable = "CDSet";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsSet = new List <FieldConvert>();
            fieldsSet.Add(new FieldConvert("IDCDSet", "SetID"));
            fieldsSet.Add(new FieldConvert("szCDSetName", "Name"));
            SetTableAdapter             setAdap = new SetTableAdapter(sdfDatabase);
            ConvertDataSet.SetDataTable sets    = new ConvertDataSet.SetDataTable();
            setAdap.Fill(sets);

            CopyData("CDSet", fieldsSet, sets);

            sql = string.Format("SET IDENTITY_INSERT [Set] ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            setAdap.Update(sets);

            sql = string.Format("SET IDENTITY_INSERT [Set] OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd = new SqlCeCommand("SELECT MAX(SetID) FROM [Set]", sdfDatabase.Connection);
            object maxSetID = cmd.ExecuteScalar();

            if (maxSetID is DBNull)
            {
                maxId = 1;
            }
            else
            {
                maxId = (int)maxSetID + 1;
            }

            cmd = new SqlCeCommand(string.Format("ALTER TABLE [Set] ALTER COLUMN SetID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion

            #region Program
            formConvertProgress.CurrentTable = "Program";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsProgram = new List <FieldConvert>();
            fieldsProgram.Add(new FieldConvert("IDCD", "CDID"));
            fieldsProgram.Add(new FieldConvert("szName", "Name"));
            fieldsProgram.Add(new FieldConvert("szLieder", "Tracks"));
            fieldsProgram.Add(new FieldConvert("bStandard", "IsStandard"));
            ProgramTableAdapter             programAdap = new ProgramTableAdapter(sdfDatabase);
            ConvertDataSet.ProgramDataTable programs    = new ConvertDataSet.ProgramDataTable();
            programAdap.Fill(programs);

            CopyData("Programme", fieldsProgram, programs);

            programAdap.Update(programs);
            #endregion

            #region Index
            formConvertProgress.CurrentTable = "Index";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsIndex = new List <FieldConvert>();
            fieldsIndex.Add(new FieldConvert("IDCD", "CDID"));
            fieldsIndex.Add(new FieldConvert("szIndexName", "Name"));
            fieldsIndex.Add(new FieldConvert("dwPosition", "Position"));
            IndexTableAdapter             indexAdap = new IndexTableAdapter(sdfDatabase);
            ConvertDataSet.IndexDataTable indexes   = new ConvertDataSet.IndexDataTable();
            indexAdap.Fill(indexes);

            CopyData("Index", fieldsIndex, indexes);

            indexAdap.Update(indexes);
            #endregion

            #region Codes
            formConvertProgress.CurrentTable = "Codes";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsCode = new List <FieldConvert>();
            fieldsCode.Add(new FieldConvert("cBuchstabe", "Letter"));
            fieldsCode.Add(new FieldConvert("szBedeutung", "Description"));
            CodeTableAdapter             codeAdap = new CodeTableAdapter(sdfDatabase);
            ConvertDataSet.CodeDataTable codes    = new ConvertDataSet.CodeDataTable();
            codeAdap.Fill(codes);

            CopyData("Kennzeichen", fieldsCode, codes);

            codeAdap.Update(codes);
            #endregion

            #region Queue
            formConvertProgress.CurrentTable = "Queue";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsQueue = new List <FieldConvert>();
            fieldsQueue.Add(new FieldConvert("Q_lIDCD", "CDID"));
            fieldsQueue.Add(new FieldConvert("Q_lAction", "Action"));
            fieldsQueue.Add(new FieldConvert("Q_sIdentity", "Identity"));
            fieldsQueue.Add(new FieldConvert("Q_sIdentityCDDB", "IdentityCDDB"));
            QueueTableAdapter             queueAdap = new QueueTableAdapter(sdfDatabase);
            ConvertDataSet.QueueDataTable queues    = new ConvertDataSet.QueueDataTable();
            queueAdap.Fill(queues);

            CopyData("Queue", fieldsQueue, queues);

            queueAdap.Update(queues);
            #endregion

            #region LoanedCDs
            formConvertProgress.CurrentTable = "LoanedCDs";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsLoanedCD = new List <FieldConvert>();
            fieldsLoanedCD.Add(new FieldConvert("IDCD", "CDID"));
            fieldsLoanedCD.Add(new FieldConvert("Kommentar", "Comment"));
            fieldsLoanedCD.Add(new FieldConvert("VerliehenAm", "LoanedDate"));
            fieldsLoanedCD.Add(new FieldConvert("VerliehenAn", "LoanedTo"));
            fieldsLoanedCD.Add(new FieldConvert("RueckgabeTermin", "ReturnDate"));
            LoanedCDTableAdapter             loanedCDAdap = new LoanedCDTableAdapter(sdfDatabase);
            ConvertDataSet.LoanedCDDataTable loanedCDs    = new ConvertDataSet.LoanedCDDataTable();
            loanedCDAdap.Fill(loanedCDs);

            CopyData("VerlieheneCDs", fieldsLoanedCD, loanedCDs);

            loanedCDAdap.Update(loanedCDs);
            #endregion

            #region Dialog
            formConvertProgress.CurrentTable = "Dialog";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsDialog = new List <FieldConvert>();
            fieldsDialog.Add(new FieldConvert("D_IDDialog", "DialogID"));
            fieldsDialog.Add(new FieldConvert("D_IDCategory", "CategoryID"));
            fieldsDialog.Add(new FieldConvert("D_DialogXML", "DialogXML"));
            DialogTableAdapter             dialogAdap = new DialogTableAdapter(sdfDatabase);
            ConvertDataSet.DialogDataTable dialogs    = new ConvertDataSet.DialogDataTable();
            dialogAdap.Fill(dialogs);

            CopyData("Dialog", fieldsDialog, dialogs);

            sql = string.Format("SET IDENTITY_INSERT [Dialog] ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            dialogAdap.Update(dialogs);

            sql = string.Format("SET IDENTITY_INSERT [Dialog] OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd      = new SqlCeCommand("SELECT MAX(DialogID) FROM [Dialog]", sdfDatabase.Connection);
            maxSetID = cmd.ExecuteScalar();

            if (maxSetID is DBNull)
            {
                maxId = 1;
            }
            else
            {
                maxId = (int)maxSetID + 1;
            }

            cmd = new SqlCeCommand(string.Format("ALTER TABLE [Dialog] ALTER COLUMN DialogID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion

            #region Role
            formConvertProgress.CurrentTable = "Role";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsRole = new List <FieldConvert>();
            fieldsRole.Add(new FieldConvert("R_ID", "RoleID"));
            fieldsRole.Add(new FieldConvert("R_Role", "Name"));
            RoleTableAdapter             roleAdap = new RoleTableAdapter(sdfDatabase);
            ConvertDataSet.RoleDataTable roles    = new ConvertDataSet.RoleDataTable();
            roleAdap.Fill(roles);

            CopyData("Role", fieldsRole, roles);

            sql = string.Format("SET IDENTITY_INSERT [Role] ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            roleAdap.Update(roles);

            sql = string.Format("SET IDENTITY_INSERT [Role] OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd      = new SqlCeCommand("SELECT MAX(RoleID) FROM [Role]", sdfDatabase.Connection);
            maxSetID = cmd.ExecuteScalar();

            if (maxSetID is DBNull)
            {
                maxId = 1;
            }
            else
            {
                maxId = (int)maxSetID + 1;
            }

            cmd = new SqlCeCommand(string.Format("ALTER TABLE [Role] ALTER COLUMN RoleID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion

            #region Participant
            formConvertProgress.CurrentTable = "Participant";
            formConvertProgress.Value++;

            List <FieldConvert> fieldsParticipant = new List <FieldConvert>();
            fieldsParticipant.Add(new FieldConvert("P_ID", "ParticipantID"));
            fieldsParticipant.Add(new FieldConvert("P_IDArtist", "PersonGroupID"));
            fieldsParticipant.Add(new FieldConvert("P_IDRole", "RoleID"));
            fieldsParticipant.Add(new FieldConvert("P_IDCD", "CDID"));
            fieldsParticipant.Add(new FieldConvert("P_TrackNumber", "TrackNumber"));
            fieldsParticipant.Add(new FieldConvert("P_Comment", "Comment"));
            ParticipantTableAdapter             participantAdap = new ParticipantTableAdapter(sdfDatabase);
            ConvertDataSet.ParticipantDataTable participants    = new ConvertDataSet.ParticipantDataTable();
            participantAdap.Fill(participants);

            CopyData("Participant", fieldsParticipant, participants);

            sql = string.Format("SET IDENTITY_INSERT [Participant] ON");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            participantAdap.Update(participants);

            sql = string.Format("SET IDENTITY_INSERT [Participant] OFF");
            cmd = new SqlCeCommand(sql, sdfDatabase.Connection);
            cmd.ExecuteNonQuery();

            cmd      = new SqlCeCommand("SELECT MAX(ParticipantID) FROM [Participant]", sdfDatabase.Connection);
            maxSetID = cmd.ExecuteScalar();

            if (maxSetID is DBNull)
            {
                maxId = 1;
            }
            else
            {
                maxId = (int)maxSetID + 1;
            }

            cmd = new SqlCeCommand(string.Format("ALTER TABLE [Participant] ALTER COLUMN ParticipantID IDENTITY({0},1)", maxId), sdfDatabase.Connection);
            cmd.ExecuteNonQuery();
            #endregion
        }