public static bool respaldarBaseDatos(clsBaseDatos objBaseDatos) { List<SqlParameter> lstParametrosSQL = new List<SqlParameter>(); SqlParameter sqlParametro; lstParametrosSQL = crearLista(objBaseDatos); sqlParametro = new SqlParameter(); sqlParametro.ParameterName = "@Accion"; sqlParametro.Value = 0; sqlParametro.Direction = ParameterDirection.Input; lstParametrosSQL.Add(sqlParametro); sqlParametro = new SqlParameter(); sqlParametro.ParameterName = "@IdGenerado"; sqlParametro.Value = 0; sqlParametro.Direction = ParameterDirection.Output; lstParametrosSQL.Add(sqlParametro); int numResultado = clsGestorBD.ejecutarStoredProcedureInt("up_ManBaseDatos", lstParametrosSQL); if (numResultado != 0) { return true; } else { return false; } }
private static List<SqlParameter> crearLista(clsBaseDatos objBaseDatos) { List<SqlParameter> lstParametrosSQL = new List<SqlParameter>(); SqlParameter sqlParametro; foreach (PropertyInfo pi in objBaseDatos.GetType().GetProperties()) { if (pi.CanRead) { sqlParametro = new SqlParameter(); sqlParametro.ParameterName = "@" + pi.Name; sqlParametro.Value = pi.GetValue(objBaseDatos, null); sqlParametro.Direction = ParameterDirection.Input; lstParametrosSQL.Add(sqlParametro); } } return lstParametrosSQL; }
public static bool restaurarBaseDatos(clsBaseDatos objBaseDatos) { try { SqlConnection sqlConexion = clsGestorBD.conectarMaster(); string strSentenciaSQL = "USE master RESTORE DATABASE " + objBaseDatos.NombreBaseDatos + " FROM DISK = '" + objBaseDatos.Ruta + "' WITH REPLACE, STATS = 10"; if (clsGestorBD.ejecutarSentenciaSQL(sqlConexion, strSentenciaSQL)) { return true; } else { return false; } } catch (Exception) { return false; } }
private void smnuRestaurar_Click(object sender, EventArgs e) { if (MessageBox.Show("Al restaurar el sistema puede que pierda infomación reciente.\nSe recomienda hacer una copia de respaldo antes.\n\n¿Desea continuar?", "Mensaje", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { OpenFileDialog ofdRestaurar = new OpenFileDialog(); ofdRestaurar.Title = "Seleccionar archivo de respaldo"; ofdRestaurar.Filter = "Archivos BAK (*.bak)|*.bak"; ofdRestaurar.FilterIndex = 2; ofdRestaurar.RestoreDirectory = true; if (ofdRestaurar.ShowDialog() == DialogResult.OK) { FileInfo fi = new FileInfo(ofdRestaurar.FileName); clsBaseDatos objBaseDatos = new clsBaseDatos(); objBaseDatos.NombreBaseDatos = "CentroSalud"; objBaseDatos.Ruta = fi.FullName; Cursor.Current = Cursors.WaitCursor; if (ctrBaseDatos.restaurarBaseDatos(objBaseDatos)) { MessageBox.Show("El sistema se restauró exitosamente", "Restaurado Exitoso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { MessageBox.Show("Ocurrió un error mientras se intentaba restaurar el sistema", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } Cursor.Current = Cursors.Default; }
private void smnuRespaldar_Click(object sender, EventArgs e) { SaveFileDialog sfdRespaldar = new SaveFileDialog(); sfdRespaldar.Title = "Guardar respaldo como"; sfdRespaldar.Filter = "Archivos BAK (*.bak)|*.bak"; sfdRespaldar.FilterIndex = 2; sfdRespaldar.RestoreDirectory = true; if (sfdRespaldar.ShowDialog() == DialogResult.OK) { FileInfo fi = new FileInfo(sfdRespaldar.FileName); clsBaseDatos objBaseDatos = new clsBaseDatos(); objBaseDatos.NombreBaseDatos = "CentroSalud"; objBaseDatos.Ruta = fi.FullName; Cursor.Current = Cursors.WaitCursor; if (ctrBaseDatos.respaldarBaseDatos(objBaseDatos)) { MessageBox.Show("Se generó el backup exitosamente", "Respaldo Exitoso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { MessageBox.Show("Ocurrió un error mientras se intentaba generar el backup", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } Cursor.Current = Cursors.Default; }