Creando cadena de conexión para SQL Server: WinForms IU


Teniendo ya el componente que nos permite generar una cadena de conexión, procedamos a crear un componente que cree un diálogo para utilizar dicha clase, desde Windows Forms.

La interfaz de usuario será la siguiente:

Para ello, generaremos un proyecto de tipo biblioteca de clases, al cual agregaremos un formulario de Windows (aunque sea biblioteca de clases), con la interfaz requerida.

Nótese que la primera imagen presenta los literales en español, mientras que, en diseño, los textos están en inglés. Esto es así, porque estamos operando con localización del componente.

El proyecto tiene una clase, con un único método para obtener la cadena de conexión:

public static class ConnectionBuilder
{
   public static string? PromptForConnection(string connectionString = null)
   {
      var dlg = new NDSoft.SqlTools.WinForms.dlgConnection();
      if(!string.IsNullOrEmpty(connectionString))
         dlg.ConnectionString = connectionString;
      if(dlg.ShowDialog() == DialogResult.OK)
         return dlg.ConnectionString;
      else
         return null;
   }
}

Un detalle importante es que el constructor del formulario NO es público, sino internal. De esa forma, no se puede crear una instancia del formulario desde otro proyecto, sino que, necesariamente, debe utilizarse el método PromptForConnection de la clase estática.

El formulario maneja la interactividad, validación, etc. que corresponde a los distintos controles de captura de datos.

Además, reaccionará ante el evento del componente para habilitar o deshabilitar los controles de captura de usuario y contraseña, cuando corresponda.

private void EnableCredentials(Boolean enable)
{
   txtPassword.Enabled = enable;
   txtUsername.Enabled = enable;
}

Finalmente, en las propiedades del proyecto, habilitaremos el empaquetado, lo que permitirá que dispongamos de un paquete Nuget con nuestro componente, para agregar a los proyectos en los que lo necesitemos.

El paquete se generará dentro de la carpeta bin, en la carpeta que corresponda al perfil de compilación (Debug, Release).

Puedes encontrar el proyecto fuente aquí

Un comentario en “Creando cadena de conexión para SQL Server: WinForms IU”

Comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.