Instalar DB Desde Nuestra App Web Parte I

Buenos días a todos.

Algo que me parece como tanto para los desarrolladores como para las DBA´s, bueno realmente creería eso, es que cuando entregamos nuestro release final al cliente, para que primero lo instalen en pruebas es entregarles un instalador o los binarios, con la primera opción se configura el instalador para que la persona que lo instale no haga muchas labores y sea un proceso simple. Con la segunda opción, bueno habría que tocar los binarios para configurar la cadena de conexión a la DB y demás cosas, algo que parece fácil pero que en ultimas no seria amigable o profesional si queremos entregar un producto de calidad en todos los aspectos.

Este post es para solventar un poco la opción dos. así que vamos a crear un formulario donde podemos configurar la cadena de conexión fácilmente.

En esta primera entrega solo vamos a conectarnos a nuestro Sql Server y ver que responde para posteriormente instalar la DB en nuestro siguiente post de este tema.

Lo primero es crear un formulario como el siguiente.

image

image

En funcionamiento se comporta así.

image

image

También funciona con autenticación sql

image

Ahora si el código.

   1: protected void buttonTestConn_Click(object sender, EventArgs e)

   2:         {

   3:             string connectionStringErrorMensaje = TestSqlClientConnectionString(ConnectionStringForMasterDatabase);

   4:  

   5:             if (connectionStringErrorMensaje == string.Empty)

   6:             {

   7:                 lblMensaje.Text = "Test de conexión fue exitosa. Proceda.........";

   8:                 

   9:                 

  10:             }

  11:             else

  12:             {

  13:                 lblMensaje.Text = connectionStringErrorMensaje;

  14:                 

  15:             }

  16:         }

   1: public static string TestSqlClientConnectionString(string sqlClientConnectionString)

   2:         {

   3:             try

   4:             {

   5:                 using (SqlConnection conn = new SqlConnection(sqlClientConnectionString))

   6:                 {

   7:                     conn.Open();

   8:                     conn.Close();

   9:                     return string.Empty;

  10:                 }

  11:             }

  12:             catch (Exception e)

  13:             {

  14:                 return e.Message;

  15:             }

  16:         }

   1: string ConnectionStringForMasterDatabase

   2:         {

   3:             get

   4:             {

   5:                 if (chkAutenticacion.Checked)

   6:                     return BuildSqlClientConnectionString(txtServidorNombre.Text);

   7:                 else

   8:                     return BuildSqlClientConnectionString(txtServidorNombre.Text, "", false, txtUsuario.Text, txtPassword.Text);

   9:             }

  10:         }

   1: string BuildSqlClientConnectionString(string dataSource, string database = "", bool integridadWindows = true, string userName = "", string password = "")

   2:         {

   3:             // Especificar el nombre de servidor y la db

   4:             string serverName = dataSource;

   5:             string databaseName = database;

   6:  

   7:             // Inicializar el SqlConnectionStringBuilder

   8:             SqlConnectionStringBuilder sqlBuilder =

   9:                 new SqlConnectionStringBuilder();

  10:  

  11:             // Establecer las propiedades para el data source.

  12:             sqlBuilder.DataSource = serverName;

  13:             sqlBuilder.InitialCatalog = databaseName;

  14:  

  15:             if (integridadWindows)

  16:                 sqlBuilder.IntegratedSecurity = true;

  17:             else

  18:             {

  19:                 sqlBuilder.UserID = userName;

  20:                 sqlBuilder.Password = password;

  21:             }

  22:  

  23:             // Contruir el SqlConnection 

  24:             string providerString = sqlBuilder.ToString();

  25:  

  26:             return providerString;

  27:  

  28:         }

 

Bueno eso es todo por ahora. Espero les haya agradado. Para el siguiente post usaremos EF.

Saludos.

Romny

Publicado por

Romny Duarte

Ingeniero de sistemas con experiencia en desarrollo web y móvil, geek, amante de la lectura y de la tecnología.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *