/// <summary> /// Сохранение базы. /// </summary> /// <param name="settings"></param> /// <returns></returns> public static Boolean serialize(cDb db, String fileName) { Boolean result = true; Stream dbFile = null; try { dbFile = File.Create(fileName); BinaryFormatter formatter = new BinaryFormatter(); // Получение данных с временных файлов отчётов: db.rsrcs.open(); // Сохранение данных: formatter.Serialize(dbFile, db); } catch (Exception e) { MessageBox.Show(String.Format("{0} {1}", saveError, e.Message), cPp.name, MessageBoxButtons.OK, MessageBoxIcon.Warning); result = false; } finally { if (dbFile != null) { dbFile.Close(); } } return(result); }
/// <summary> /// Загрузка базы. /// </summary> /// <returns></returns> public static cDb deserialize(String fileName) { cDb result = null; // Установка по умолчанию. Stream dbFile = null; try { dbFile = File.OpenRead(fileName); if (dbFile != null) { BinaryFormatter formatter = new BinaryFormatter(); result = (cDb)formatter.Deserialize(dbFile); // Если try выполнен до этого места, значит база загружена успешно. } } catch (Exception e) { MessageBox.Show(String.Format("{0} {1}", openError, e.Message), cPp.name, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (dbFile != null) { dbFile.Close(); } } return(result); }
/// <summary> /// Метод открытия файла с расходом. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void mOpen_Click(object sender, EventArgs e) { if (processUnsavedData() == true) // Если требуется, сохраняем данные. { cDb db = cDb.open(); if (db != null) { cPp.db = db; afterOpen(); } } }
/// <summary> /// Открытие базы данных. /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static cDb open(String fileName) { cDb result = cDb.deserialize(fileName); if (result == null) { result = new cDb(); } else { result._savedFile = fileName; } result._changed = false; result._tab = result._soldiers; return(result); }