/// <summary> /// Comprueba si existe una conexión elegida correcta y cambia a ventana Operaciones /// </summary> private void Conectar() { // Si existe una conexión elegida correcta, o se está en modo invitado // y los inputs tienen los datos de una conexion correcta, cambiar ventana if (!modoInvitado) { if (conexionActual != null) { if (Test()) { VentanaOperaciones vo = new VentanaOperaciones(conexionActual); Manejador.CambiarVentana(this, vo); } } else { Msj.Aviso("No existe una conexión válida guardada"); } } else { if (modoInvitado && (conexionActual = ComprobarCampos()) != null) { if (Test()) { VentanaOperaciones vo = new VentanaOperaciones(conexionActual); Manejador.CambiarVentana(this, vo); } } } }
/// <summary> /// Cambia a la ventana Conexion en modo Invitado. /// </summary> private void btnInvitado_Click(object sender, RoutedEventArgs e) { Msj.Aviso("Aviso: funcionalidades de guardado de conexiones no están disponibles en modo invitado."); VentanaConexion vc = new VentanaConexion(null); Manejador.CambiarVentana(this, vc); }
/// <summary> /// Realiza un test de conexión que informa al usuario de manera visual /// si los campos introducidos tienen una conexión válida. /// </summary> /// <returns>True si la conexión es válida.</returns> private bool Test() { conexionActual = ComprobarCampos(); if (conexionActual != null) { // Muestra la conexión actual ActualizarConexionActual(conexionActual); // Obtiene el resultado bool retorno = Operacion.ExecuteTest(conexionActual); if (retorno) { Msj.Info("Conexión correcta."); } else { Msj.Error("Conexión fallida"); } return(retorno); } else { Msj.Aviso("No existe conexión actual guardada correcta."); return(false); } }
private void btn_Click(object sender, RoutedEventArgs e) { // Comprobación WHERE if (!comandoEnviar.CommandText.Contains("WHERE")) { MessageBoxResult opcionElegida = MessageBox.Show("No se han elegido condiciones. \r\n" + "Se realizará un borrado TOTAL de TODAS las filas. ¿Continuar?", "Peligro", MessageBoxButton.YesNo, MessageBoxImage.Stop); if (opcionElegida.Equals(MessageBoxResult.No)) { return; } } int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); if (resultado > 0) { Msj.Info( resultado + " filas de la tabla \"" + Comprueba.EliminarResto(cmbTablas.SelectedItem.ToString()) + "\" en base de datos " + "\"" + conexionActual.BaseDatos + "\" eliminadas con éxito."); } else { Msj.Aviso("Ninguna fila afectada."); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana ALTER TABLE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void AlterTable() { if (HayBBDDSeleccionada()) { VAlterTable vat = new VAlterTable(conexionActual); vat.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana CREATE TABLE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void CreateTable() { if (HayBBDDSeleccionada()) { VCreateTable vct = new VCreateTable(conexionActual); vct.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Ordena numéricamente según "ID" la lista de conexiones. /// En caso de no existir conexiones, lanza un aviso. /// </summary> private void ListaOrdenarID() { if (listViewConexiones.Items.Count > 0) { listaConexiones = new ObservableCollection <Conexion>(listaConexiones.OrderBy(c => c.ID)); RefrescarConexionesListview(); } else { Msj.Aviso("No existen conexiones a ordenar"); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana UPDATE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void Update() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VUpdate vu = new VUpdate(conexionActual); vu.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana INSERT de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void Insert() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VInsert vi = new VInsert(conexionActual); vi.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
private void ShowTables() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VShowTables vst = new VShowTables(conexionActual); vst.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana DELETE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void Delete() { // Antes comprobar si existe una BBDD seleccionada if (HayBBDDSeleccionada()) { VDeleteFrom vdf = new VDeleteFrom(conexionActual); vdf.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. /// Si no la hay, pide al usuario seleccionar una. /// Luego abre una ventana DROP TABLE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void DropTable() { if (HayBBDDSeleccionada()) { DbCommand comando = Comando.DropTable(conexionActual); VGenericaDrop vod = new VGenericaDrop(conexionActual, VGenericaDrop.Modo.TABLE); vod.ShowDialog(); } else { Msj.Aviso(MSJ_ELEGIR_BBDD); } }
/// <summary> /// Guarda la conexión resultante de los datos actualmente introducidos en base de datos, /// o en modo local si se está en modo invitado. /// </summary> /// <returns>True si la conexión se ha podido guardar.</returns> private bool Guardar() { Conexion guardar = ComprobarCampos(); if (guardar != null) { if (!modoInvitado) { // Si no está marcado el check de contraseñas, se borran los datos if (chkGuardarContrasenia.IsChecked.Value) { if (Comprueba.ContraseniaConexion(pwdBoxContrasenia.Password) ?? false) { // Todo correcto, se devuelve una conexion guardando contraseña guardar.ContraseniaConexion = pwdBoxContrasenia.Password; } else { Msj.Aviso("Se ha marcado 'guardar contraseña' pero está vacía o con valores nulos."); return(false); } } else { guardar.ContraseniaConexion = ""; } ResultadoConexion resultado = BBDDPrograma.RegistrarConexion(guardar); resultado.MostrarMensaje(); // Si se guarda, lo almacenamos temporalmente por si se desea acceder directamente if (resultado.ResultadoActual == ResultadoConexion.TipoResultado.ACEPTADO) { conexionActual = resultado.ConexionGuardar; listaConexiones.Add(conexionActual); } return(resultado.ResultadoActual == ResultadoConexion.TipoResultado.ACEPTADO); } else { conexionActual = guardar; return(true); } } else { return(false); } }
private void btn_Click(object sender, RoutedEventArgs e) { // Crear datos a guardar DatosConsulta datosGuardar = new DatosConsulta( paqueteDatos.Conexion, paqueteDatos.Datos, paqueteDatos.ComandoSQL); if (Serializador.Guardar(datosGuardar)) { Msj.Info("Datos almacenados correctamente."); } else { Msj.Aviso("Error al guardar. Datos no almacenados."); } }
/// <summary> /// Comprueba si hay una BBDD seleccionada. Si la hay, la deselecciona. /// Abre una ventana DROP DATABASE de manera modal, /// pasando la conexión actual como parámetro. /// </summary> private void DropDB() { if (HayBBDDSeleccionada()) { // Quita la selección de la BBDD actual cmbBaseDatos.SelectedIndex = 0; SeleccionBBDDCambiada(); Msj.Aviso("Deseleccionada BBDD elegida"); } DbCommand comando = Comando.DropDatabase(conexionActual, false); VGenericaDrop vod = new VGenericaDrop(conexionActual, VGenericaDrop.Modo.DATABASE); vod.ShowDialog(); }
/// <summary> /// Abre una conexión Web a una reconocida página de información sobre comandos SQL, /// previa petición de permiso al usuario. /// </summary> private void Ayuda() { MessageBoxResult opcionElegir = MessageBox.Show("Se abrirá una conexión a la web W3SCHOOLS\r\n" + "¿Desea permitirlo?", "Información", MessageBoxButton.YesNo, MessageBoxImage.Information); if (opcionElegir.Equals(MessageBoxResult.Yes)) { try { Process.Start("https://www.w3schools.com/sql/default.asp"); } catch (Exception) { Msj.Aviso("Navegador por defecto no encontrado"); } } }
/// <summary> /// Muestra un mensaje al usuario correspondiente al tipo de resultado /// que se haya producido. /// </summary>/// <summary> /// Muestra un mensaje al usuario correspondiente al tipo de resultado /// que se haya producido. /// </summary> public void MostrarMensaje() { switch (ResultadoActual) { case TipoResultado.ACEPTADO: Msj.Info(RESPUESTA_ACEPTADO); break; case TipoResultado.DENEGADO: Msj.Aviso(RESPUESTA_DENEGADO); break; case TipoResultado.ERROR: Msj.Error(RESPUESTA_ERROR); break; default: break; } }
private void btn_Click(object sender, RoutedEventArgs e) { if (txtbox.Text.Length > 0) { if (Comprueba.ContieneSeparadorSQL(txtbox.Text)) { Msj.Aviso("Detectado separador SQL. Sólo se ejecutará: " + comandoEnviar.CommandText); } comandoEnviar.CommandText = textoComandoOriginal + Comprueba.EliminarResto(txtbox.Text); int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar); if (resultado != Operacion.ERROR) { Msj.Info("Base de datos \"" + Comprueba.EliminarResto(txtbox.Text) + "\" creada con éxito."); } } else { Msj.Aviso("Debes introducir un nombre"); } }
/// <summary> /// Intenta cargar datos de un fichero de una consulta SELECT previamente creado. /// Si lo consigue, muestra metadatos del archivo por medio de una ventana de información, /// luego muestra los datos del fichero en una ventana Mostrar Datos no modal. /// En caso contrario, muestra un mensaje de aviso al usuario. /// </summary> private void Cargar() { DatosConsulta datosCargados = Serializador.Cargar(); if (datosCargados != null) { var c = datosCargados.Conexion; // Mostrar información del archivo string informacion = "Base de datos \"" + c.BaseDatos + "\" tipo \"" + c.TipoActual + "\"\r\nFecha consulta: " + datosCargados.FechaCreacion; Msj.Info(informacion); VMostrarDatos vmd = new VMostrarDatos(datosCargados); vmd.Show(); } else { Msj.Aviso("No se ha podido cargar el fichero seleccionado"); } }
private void Button_Click(object sender, RoutedEventArgs e) { // Saco la información del textbox de su izquierda string nombreTabla = (((sender as Button).Parent as Grid).Children[1] as TextBox).Text; DbCommand comando = Comando.Select(conexionActual); string txtComando = comando.CommandText; txtComando = txtComando.Replace(Comando.PARAMS[0], "*"); txtComando = txtComando.Replace(Comando.PARAMS[1], nombreTabla); txtComando = txtComando.Replace(Comando.PARAMS[2], ""); txtComando = txtComando.Replace(Comando.PARAMS[3], ""); comando.CommandText = txtComando; object comprobarComando = Operacion.ExecuteScalar(conexionActual, comando); if (comprobarComando != null) { int resultado = 0; Int32.TryParse(comprobarComando.ToString(), out resultado); if (resultado != Operacion.ERROR) { // Al menos hay una fila que mostrar IDataReader readerSelect = Operacion.ExecuteReader(conexionActual, comando); DataTable datosMostrar = new DataTable(); datosMostrar.Load(readerSelect); DatosConsulta paqueteDatos = new DatosConsulta(conexionActual, datosMostrar, comando.CommandText); VMostrarDatos vmd = new VMostrarDatos(paqueteDatos); vmd.Show(); } } else { Msj.Aviso("Ninguna fila encontrada."); } }
private void btn_Click(object sender, RoutedEventArgs e) { object comprobarComando = Operacion.ExecuteScalar(conexionActual, comandoEnviar); if (comprobarComando != null) { int resultado = 0; Int32.TryParse(comprobarComando.ToString(), out resultado); if (resultado != Operacion.ERROR) { // Al menos hay una fila que mostrar IDataReader readerSelect = Operacion.ExecuteReader(conexionActual, comandoEnviar); DataTable datosMostrar = new DataTable(); datosMostrar.Load(readerSelect); DatosConsulta paqueteDatos = new DatosConsulta(conexionActual, datosMostrar, comandoEnviar.CommandText); VMostrarDatos vmd = new VMostrarDatos(paqueteDatos); vmd.Show(); } } else { Msj.Aviso("Ninguna fila encontrada."); } }