// Сохранение информации о жителе private void saveButton_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите сохранить изменения?\n", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { if (isAllFieldsValid() == false) { return; } try { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; db = new DataContext(sqlConnectionString.ConnectionString); Resident resident = db.GetTable <Resident>().SingleOrDefault(r => r.ResidentId == residentId); Resident oldResident = resident.ShallowCopy(); int organizationId = Int32.Parse(organizationIdLabel.Text); resident.Surname = surnameTextBox.Text; resident.Name = nameTextBox.Text; resident.Patronymic = patronymicTextBox.Text; resident.PhoneNumber = phoneNumberTextBox.Text; resident.Birthday = birthdayDateTimePicker.NullableValue(); resident.Note = noteTextBox.Text; resident.Organization = db.GetTable <Organization>().SingleOrDefault(r => r.OrganizationId == organizationId); Passport passport = db.GetTable <Passport>().SingleOrDefault(p => p.PassportId == resident.PassportId); oldResident.Passport = passport.ShallowCopy(); passport.Number = passportNumberTextBox.Text; passport.Series = passportSeriesTextBox.Text; passport.Registration = passportRegistrationTextBox.Text; passport.DateOfIssue = passportDateOfIssueDateTimePicker.Value.Date; passport.Authority = passportAuthorityTextBox.Text; SqlConnectionStringBuilder sConnBForOtherServer = new SqlConnectionStringBuilder() { DataSource = Properties.Settings.Default.userServer2Name, InitialCatalog = Properties.Settings.Default.userServer2Database, UserID = sqlConnectionString.UserID, Password = sqlConnectionString.Password, }; DataContext dbFromOtherServer = new DataContext(sConnBForOtherServer.ConnectionString); Resident resident2 = dbFromOtherServer.GetTable <Resident>().SingleOrDefault(r => r.ResidentId == residentId); resident2.Surname = surnameTextBox.Text; resident2.Name = nameTextBox.Text; resident2.Patronymic = patronymicTextBox.Text; resident2.PhoneNumber = phoneNumberTextBox.Text; resident2.Birthday = birthdayDateTimePicker.NullableValue(); resident2.Note = noteTextBox.Text; resident2.Organization = dbFromOtherServer.GetTable <Organization>().SingleOrDefault(r => r.OrganizationId == organizationId); Passport passport2 = dbFromOtherServer.GetTable <Passport>().SingleOrDefault(p => p.PassportId == resident2.PassportId); passport2.Number = passportNumberTextBox.Text; passport2.Series = passportSeriesTextBox.Text; passport2.Registration = passportRegistrationTextBox.Text; passport2.DateOfIssue = passportDateOfIssueDateTimePicker.Value.Date; passport2.Authority = passportAuthorityTextBox.Text; dbFromOtherServer.SubmitChanges(); db.SubmitChanges(); SystemSounds.Beep.Play(); MessageBox.Show("Успешно сохранено!"); HistoryRecordsController.WriteAboutEditResident(oldResident, resident); } catch (Exception ex) { SystemSounds.Exclamation.Play(); HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при сохранении изменений жителя."); MessageBox.Show("Ошибка при сохранении изменений. \nВызвано исключение: " + ex.Message); } finally { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } } }