public ConfigurarConeccionSQL(bool Update) { InitializeComponent(); if (Update) // Sí es true se debe actualizar { InternalAccess internalAccess = new InternalAccess(); internalAccess.Read_InternalAccess(); txtServidor.Text = internalAccess.Servidor; txtUsuario.Text = internalAccess.Usuario; txtContrasenia.Password = internalAccess.Contrasenia; InternalConnection internalConnection = new InternalConnection(); string uriIcon = internalConnection.GetPathMDF() + "\\images\\close.png"; imageGuardar.Source = new BitmapImage(new Uri(uriIcon)); TextBotonGuardar.Content = "Salir"; // Entonces la funcionalidad del botón cambia a SALIR debido a que la conexión es incorrecta } else // Sí es false se debe crear { InternalConnection internalConnection = new InternalConnection(); string uriIcon = internalConnection.GetPathMDF() + "\\images\\close.png"; imageGuardar.Source = new BitmapImage(new Uri(uriIcon)); TextBotonGuardar.Content = "Salir"; // Entonces la funcionalidad del botón cambia a SALIR debido a que la conexión es incorrecta } }
private void btnTestDB_Click(object sender, RoutedEventArgs e) { string servidor = string.Empty; string usuario = string.Empty; string contrasenia = string.Empty; servidor = txtServidor.Text.ToString().Trim(); usuario = txtUsuario.Text.ToString().Trim(); contrasenia = txtContrasenia.Password.ToString().Trim(); string cadena = $"data source={servidor}; initial catalog=master; user id={usuario}; password={contrasenia}; Connection Timeout=7"; Connection connection = new Connection(); if (!string.IsNullOrEmpty(servidor) && !string.IsNullOrEmpty(usuario) && !string.IsNullOrEmpty(contrasenia)) // Todos los campos completados { if (connection.CheckConnection(cadena)) // Comprobamos la conexión con la base de datos { // Actualizar la cadena de conexión exitoConexion = true; TextBotonGuardar.Content = "Guardar"; // Entonces la funcionalidad del botón cambia a GUARDAR debido a que la conexión es correcta InternalConnection internalConnection = new InternalConnection(); try { string uriIcon = internalConnection.GetPathMDF() + "\\images\\save-icon.png"; imageGuardar.Source = new BitmapImage(new Uri(uriIcon)); } catch (Exception) { } MessageBox.Show("La conexión con el servidor tuvo éxito, procede a guardar para conservar los datos de conexión.", "Prueba de conexión", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("Lo sentimos, no se ha podido realizar la conexión con el servidor de base de datos, corriga los datos y vuelva a intentarlo.", "Sin conexión", MessageBoxButton.OK, MessageBoxImage.Information); // Aún no se puede conectar con la base de datos } } else { MessageBox.Show("Antes de continuar debes completar todos los campos.", "Datos incompletos", MessageBoxButton.OK, MessageBoxImage.Exclamation); } }
private void btnGuardar_Click(object sender, RoutedEventArgs e) { if (exitoConexion == false) // Sí es que es FALSE, entonces el botón funciona como botón de salir { Close(); } else // En caso de que este en TRUE es porque ya se probó con éxito la conexión con la DB, se vuelve a comprobar los accesos para asegurar la conexión siga disponible { string servidor = string.Empty; string usuario = string.Empty; string contrasenia = string.Empty; servidor = txtServidor.Text.ToString().Trim(); usuario = txtUsuario.Text.ToString().Trim(); contrasenia = txtContrasenia.Password.ToString().Trim(); string cadena = $"data source={servidor}; initial catalog=master; user id={usuario}; password={contrasenia}; Connection Timeout=3"; Connection connection = new Connection(); if (!string.IsNullOrEmpty(servidor) && !string.IsNullOrEmpty(usuario) && !string.IsNullOrEmpty(contrasenia)) // Todos los campos completados { if (connection.CheckConnection(cadena)) // Comprobamos la conexión con la base de datos { string ruta = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (!Directory.Exists($"{ruta}\\FEICONT")) { Directory.CreateDirectory($"{ruta}\\FEICONT"); } #region Escritura del archivo txt con los datos del servidor de base de datos try { if (File.Exists($"{ruta}\\FEICONT\\access.txt")) { File.Delete($"{ruta}\\FEICONT\\access.txt"); } else { using (StreamWriter streamWriter = new StreamWriter($"{ruta}\\FEICONT\\access.txt")) { streamWriter.WriteLine($"{servidor}|{usuario}|{contrasenia}"); } } } catch (Exception) { // El archivo esta en uso o no se puede acceder a el } #endregion Escritura del archivo txt con los datos del servidor de base de datos #region Actualizar o crear InternalDB InternalAccess internalAccess = new InternalAccess() { Servidor = servidor, Usuario = usuario, Contrasenia = contrasenia }; ReadGeneralData readGeneralData = new ReadGeneralData(); DataTable dataTableInternalData = readGeneralData.GetInternalDataTable("[dbo].[Read_DataAccess]"); if (dataTableInternalData.Rows.Count == 1) // En caso de que ya haya un registro en la db { internalAccess.Alter_InternalAccess("[dbo].[Update_DataAccess]"); } else // Sí no lo hay, la crea { internalAccess.Alter_InternalAccess("[dbo].[Create_DataAccess]"); } #endregion Actualizar o crear InternalDB // Ejecutar todo el script de creación de base de datos (PENDIENTE) asegurarGuardado = true; Application.Current.Shutdown(); System.Windows.Forms.Application.Restart(); // Se reinicia la aplicación para que acceda de inmediato al login ya con los accesos correctos de la db } else { MessageBox.Show("Lo sentimos, se ha cambiado los datos de acceso, corriga los datos y vuelva a intentarlo.", "Sin conexión", MessageBoxButton.OK, MessageBoxImage.Information); // Aún no se puede conectar con la base de datos InternalConnection internalConnection = new InternalConnection(); string uriIcon = internalConnection.GetPathMDF() + "\\images\\close.png"; imageGuardar.Source = new BitmapImage(new Uri(uriIcon)); TextBotonGuardar.Content = "Salir"; // Entonces la funcionalidad del botón cambia a SALIR debido a que la conexión es incorrecta } } else { MessageBox.Show("Antes de continuar debes completar todos los campos.", "Datos incompletos", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } }