/// <summary> /// Validar la conexion /// </summary> private bool validacionBD() { bool succes = true; try { this.addText("Comprobando la conectividad con la base de datos\n"); Consultas consulta = new Consultas(); consulta.getNMTGroup(); } catch (Exception ex) { //Nombre de la BD string vg_BDConexion = ConfigurationManager.AppSettings["NombreBD"]; if (ex.Message.Contains("error: 26")) { this.addText("Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas.\n"); MessageBox.Show("Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas - " + ex.Message); Debug.Write(ex.Message); succes = false; } else if (ex.Message.Contains(vg_BDConexion)) { try { this.addText("No se detectó la base de datos, procediendo a la creación.\n"); ConexionBD cb = new ConexionBD(); FileInfo file = new FileInfo("Script\\Script.sql"); string script = file.OpenText().ReadToEnd(); cb.ejecutarScript("CREATE DATABASE " + vg_BDConexion + "; "); cb.ejecutarScript(script.Replace("[NMTBASE]", vg_BDConexion)); System.Threading.Thread.Sleep(20000); file = new FileInfo("Script\\ScriptSP.sql"); script = file.OpenText().ReadToEnd(); string[] creates = script.Split('|'); foreach (string sql in creates) { try { cb.ejecutarScriptBase(sql); } catch (Exception e) { MessageBox.Show("Error tratando de crear el stored procedure " + sql + " - " + e.Message); Debug.Write(e.Message); } } this.addText("Creación de base de datos completa.\n"); string delay = System.Configuration.ConfigurationManager.AppSettings["SegsTiempoComprobacionConexion"]; try { int delayNew = Convert.ToInt32(delay); delayNew = delayNew + 5; System.Threading.Thread.Sleep(delayNew * 1000); } catch (Exception) { } this.reinitPrincipal(); if (parentWin.GetType().FullName == "IMC.Wpf.CoverFlow.NMT.PrincipalWindow") { ((PrincipalWindow)parentWin).Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { territorio = ((PrincipalWindow)parentWin).tbTerrirotio.Text; } )); } else if (parentWin.GetType().FullName == "IMC.Wpf.CoverFlow.NMT.IndicadorWindow") { ((IndicadorWindow)parentWin).Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { territorio = ((IndicadorWindow)parentWin).tbTerrirotio.Text; } )); } } catch (FileNotFoundException ex1) { MessageBox.Show("No se encontró el script " + ex1.Message); Debug.Write(ex1.Message); succes = false; } catch (Exception ex2) { MessageBox.Show("Error relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server. No se encontró el servidor o éste no estaba accesible. Compruebe que el nombre de la instancia es correcto y que SQL Server está configurado para admitir conexiones remotas - " + ex2.Message); Debug.Write(ex2.Message); succes = false; } } } return succes; }