コード例 #1
0
        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.");
            }
        }
コード例 #2
0
        private void btnEjecutar_Click(object sender, RoutedEventArgs e)
        {
            int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar);

            if (resultado != Operacion.ERROR)
            {
                Msj.Info("Tabla \"" + Comprueba.EliminarResto(txtTabla.Text) + "\" en base de datos " +
                         "\"" + conexionActual.BaseDatos + "\" creada con éxito.");
            }
        }
コード例 #3
0
        private void btn_Click(object sender, RoutedEventArgs e)
        {
            int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar);

            if (resultado != Operacion.ERROR)
            {
                Msj.Info("Tabla \"" + Comprueba.EliminarResto(cmbTablas.SelectedItem.ToString())
                         + "\" en base de datos " + "\"" + conexionActual.BaseDatos + "\" modificada con éxito.");
                // Reestableciendo tipo operación a por defecto
                cmbTipoOperacion.SelectedIndex = 0;
            }
        }
コード例 #4
0
        private void DatosCambiados()
        {
            // Comando actual: ALTER TABLE
            // Obtiene nombre tabla
            if (!Comun.ElegidaTablaDefecto(cmbTablas))
            {
                comandoEnviar.CommandText = textoComandoOriginal + cmbTablas.SelectedItem;
                lblComando.Content        = comandoEnviar.CommandText;
                // Comando actual: ALTER TABLE <nombre_tabla>
                // Operación añadir
                if (txtBoxGenerado != null)
                {
                    // Obtiene tipo operación
                    comandoEnviar.CommandText += " ADD ";
                    lblComando.Content         = comandoEnviar.CommandText;
                    // Comprobar que la opcion no sea la por defecto

                    // Obtiene nombre columna y tipo dato
                    string columna  = Comprueba.EliminarResto(txtBoxGenerado.Text);
                    string tipoDato = "";
                    if (cmbGenerado.SelectedItem != null)
                    {
                        tipoDato = cmbGenerado.SelectedItem.ToString();
                    }
                    comandoEnviar.CommandText += columna + " " + tipoDato;
                    lblComando.Content         = comandoEnviar.CommandText;
                }
                // Operacion eliminar
                else if (cmbGenerado != null)
                {
                    // Obtiene tipo operación
                    comandoEnviar.CommandText += " DROP COLUMN ";
                    lblComando.Content         = comandoEnviar.CommandText;
                    // Comprobar que la opcion no sea la por defecto
                    if (cmbGenerado.SelectedItem != null)
                    {
                        // Obtiene nombre columna
                        comandoEnviar.CommandText += cmbGenerado.SelectedItem.ToString();
                        lblComando.Content         = comandoEnviar.CommandText;
                    }
                }
            }
            // Ninguna operación seleccionada
            else
            {
                // Comando actual: ALTER TABLE
                comandoEnviar.CommandText = textoComandoOriginal;
                lblComando.Content        = comandoEnviar.CommandText;
            }
        }
コード例 #5
0
        /// <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);
            }
        }
コード例 #6
0
ファイル: VInsert.xaml.cs プロジェクト: Kailneg/EasySQL
        private void btn_Click(object sender, RoutedEventArgs e)
        {
            int resultado = Operacion.ExecuteNonQuery(conexionActual, comandoEnviar);

            if (resultado > 0)
            {
                Msj.Info(
                    "Fila en la tabla \"" +
                    Comprueba.EliminarResto(cmbTablas.SelectedItem.ToString()) +
                    "\" en base de datos " + "\"" + conexionActual.BaseDatos +
                    "\" añadida con éxito.");
            }
            else
            {
                Msj.Error("Ninguna fila afectada.");
            }
        }
コード例 #7
0
        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");
            }
        }
コード例 #8
0
        /// <summary>
        /// Comprueba que el input Contrasenia tenga los datos correctos.
        /// </summary>
        private void pwdBoxContrasenia_LostFocus(object sender, RoutedEventArgs e)
        {
            PasswordBox datos = (PasswordBox)sender;

            Colorea.BordeCorrectoErrorDefecto(datos, Comprueba.ContraseniaConexion(datos.Password));
        }
コード例 #9
0
 /// <summary>
 /// Comprueba que los inputs de contraseña y repetir contraseña sean correctos.
 /// </summary>
 /// <returns>True si los valores de los input son correctos.</returns>
 private bool ComprobarContrasenias()
 {
     return((Comprueba.ContraseniaPrograma(pwdBoxContrasenia.Password) ?? false) &&
            pwdBoxRepetirContrasenia.Password.Equals(pwdBoxContrasenia.Password));
 }
コード例 #10
0
 /// <summary>
 /// Comprueba que los inputs de usuario, contraseña y repetir contraseña sean correctos.
 /// </summary>
 /// <returns>True si los valores de los input son correctos.</returns>
 private bool ComprobarCampos()
 {
     return((Comprueba.UsuarioPrograma(txtBoxUsuario.Text) ?? false) &&
            (Comprueba.ContraseniaPrograma(pwdBoxContrasenia.Password) ?? false) &&
            ComprobarContrasenias());
 }
コード例 #11
0
        /// <summary>
        /// Comprueba que el input de la contraseña tenga datos correctos
        /// </summary>
        private void pwdBoxContrasenia_LostFocus(object sender, RoutedEventArgs e)
        {
            PasswordBox datos = (PasswordBox)sender;

            Colorea.BordeCorrectoError(datos, Comprueba.UsuarioPrograma(datos.Password));
        }
コード例 #12
0
        /// <summary>
        /// Comprueba que el input del usuario tenga datos correctos
        /// </summary>
        private void txtBoxUsuario_LostFocus(object sender, RoutedEventArgs e)
        {
            TextBox datos = (TextBox)sender;

            Colorea.BordeCorrectoError(datos, Comprueba.UsuarioPrograma(datos.Text));
        }
コード例 #13
0
        /// <summary>
        /// Se comprueban todos los inputs de la ventana y que estos tengan datos correctos.
        /// </summary>
        /// <returns>Devuelve una Conexion si los campos obligatorios tienen valores correctos y los demás
        /// estén vacíos o con valores correctos.</returns>
        private Conexion ComprobarCampos()
        {
            // Campos obligatorios: nombre conexión, dirección, usuario, tipo conexión.

            // El operador ?? operador devuelve el operando izquierdo si no es NULL;
            // de lo contrario, devuelve el operando derecho.

            // Comprueba si el nombre tiene datos correctos o está deshabilitado (modoInvitado)
            if (((Comprueba.Nombre(txtBoxNombre.Text)) || !txtBoxNombre.IsEnabled) &&
                (Comprueba.Direccion(txtBoxDireccion.Text)) &&
                (Comprueba.UsuarioConexion(txtBoxUsuario.Text)) &&
                (Comprueba.Puerto(txtBoxPuerto.Text) ?? true))
            {
                string nombre    = txtBoxNombre.Text;
                string direccion = txtBoxDireccion.Text;
                string usuario   = txtBoxUsuario.Text;
                Conexion.TipoConexion tipo;
                bool ssl = false;

                // Comprobando si el tipo de conexión está marcado
                if (rbtnMicrosoftSQL.IsChecked.Value)
                {
                    tipo = Conexion.TipoConexion.MicrosoftSQL;
                    if (chkIntegratedSecurity.IsChecked.Value)
                    {
                        usuario = Usuario.NombreIntegratedSecurity;
                    }
                }
                else if (rbtnMySQL.IsChecked.Value)
                {
                    tipo = Conexion.TipoConexion.MySQL;
                    if (chkUsarSSL.IsChecked.Value)
                    {
                        ssl = true;
                    }
                }
                else
                {
                    Msj.Error("No se ha marcado el tipo de conexión.");
                    return(null);
                }
                int puerto = 0;
                if (!String.IsNullOrWhiteSpace(txtBoxPuerto.Text))
                {
                    puerto = Int32.Parse(txtBoxPuerto.Text);
                }
                if (puerto == 0)
                {
                    Msj.Info("Puerto no introducido. " +
                             "\r\nObteniendo puerto por defecto para bases de datos " + tipo);
                    puerto = BBDDPrograma.ObtenerPuertoDefecto(tipo);
                }

                string   contrasenia = pwdBoxContrasenia.Password;
                Conexion guardar     = new Conexion(nombre, direccion, puerto, usuario,
                                                    contrasenia, tipo, usuarioActivo, ssl);
                return(guardar);
            }
            else
            {
                Msj.Error("Uno o más campos obligatorios están vacíos o con valores nulos.");
                return(null);
            }
        }
コード例 #14
0
        /// <summary>
        /// Comprueba que el input Puerto tenga los datos correctos.
        /// </summary>
        private void txtBoxPuerto_LostFocus(object sender, RoutedEventArgs e)
        {
            TextBox datos = (TextBox)sender;

            Colorea.BordeCorrectoErrorDefecto(datos, Comprueba.Puerto(datos.Text));
        }
コード例 #15
0
        /// <summary>
        /// Comprueba que el input Direccion tenga los datos correctos.
        /// </summary>
        private void txtBoxDireccion_LostFocus(object sender, RoutedEventArgs e)
        {
            TextBox datos = (TextBox)sender;

            Colorea.BordeCorrectoError(datos, Comprueba.Direccion(datos.Text));
        }
コード例 #16
0
        private async void CambioDetectado()
        {
            // Espera 5ms para que de tiempo a repintar los componentes
            await Task.Delay(5);

            // Mirar cada uno de los campos del formulario para escribir el comando SQL resultante.
            // Comando original: CREATE TABLE
            string        datos       = textoComandoOriginal;
            List <string> primaryKeys = new List <string>();

            // Añado nombre tabla -> CREATE TABLE nombre (
            datos += Comprueba.EliminarResto(txtTabla.Text);
            datos += " (";

            // Añadir cada uno de los valores de los textbox, separado por coma junto al tipo de dato
            // -> CREATE TABLE nombre (columna1 tipodato1, columna2 tipodato2

            for (int i = 0; i < numColumnas; i++)
            {
                // Obtiene cada TextBox y ComboBox de cada fila
                CheckBox chkPk       = stackCheckBoxes.Children[i] as CheckBox;
                TextBox  txtColumna  = stackTextBoxes.Children[i] as TextBox;
                ComboBox cmbTipoDato = stackComboBoxes.Children[i] as ComboBox;

                if (chkPk.IsChecked.Value)
                {
                    primaryKeys.Add(txtColumna.Text);
                }

                datos += Comprueba.EliminarResto(txtColumna.Text);
                datos += " ";
                if (cmbTipoDato.SelectedItem != null)
                {
                    datos += Comprueba.EliminarResto(cmbTipoDato.SelectedItem.ToString());
                }
                datos += ", ";
            }


            // -> CREATE TABLE nombre (columna1 tipodato1, columna2 tipodato2)
            // += CONSTRAINT PK_<nombreTabla> PRIMARY KEY (columna2marcado1, columna2marcada2)
            if (primaryKeys.Count > 0)
            {
                datos += " CONSTRAINT PK_" + txtTabla.Text + " PRIMARY KEY (";
                foreach (string pk in primaryKeys)
                {
                    datos += pk + ", ";
                }
                datos += ")";
            }

            // Elimina última coma y pone paréntesis de cierre
            if (datos.Contains(','))
            {
                datos = datos.Remove(datos.LastIndexOf(','), 1);
            }
            datos += ")";

            // Asigna datos a label y al comando
            string comandoResultante = Comprueba.EliminarResto(datos);

            lblComando.Content        = comandoResultante;
            comandoEnviar.CommandText = comandoResultante;
        }
コード例 #17
0
 private void txtbox_TextChanged(object sender, TextChangedEventArgs e)
 {
     lblComando.Content = textoComandoOriginal + Comprueba.EliminarResto(txtbox.Text);
 }