none
Ayuda Form RRS feed

  • Pregunta

  • Buenas tardes,

    Mira tengo un Form que es un launcher, y le tengo puesto una condicion if que lo que hace es busca un archivo .txt que es donde almaceno la url de una base de datos que es un archivo access que este programa se va a montar en una empresa donde se va a engachar al mismo archivo entonces lo que hace la sentecia if es si existe ese archivo pasa directamente al programa sino, carga otro form para introducir la url del archivo, entonces cuando crea el archivo con la url como puedo hacer que se cierre ese form y el form del laucher se muestre pero que haga otra vez la autorecarga para la sentencia if para que lea el archivo y directamente pase al programa, o es mejor que cuando crea el archivo y le de a aceptar pase directo ya al programa?

    lunes, 31 de julio de 2017 16:42

Respuestas

  • Hola:

     Pero esto mismo puedes hacerlo desde al App.Config, editar la key que contiene el valor de la cadena de conexión y listo, eso mismo haces con el archivo de texto, a menos que tengas que este proceso sea automático con alguna otra rutina (que esto mismo es posible hacerlo con al App,Config).

     A lo que voy es que , ¿Porque complicarte la existencia?, .Net te proporciona el App.Config para almacenar información y configuraciones propias de la aplicación, como dije antes, tienes la posibilidad de editar este archivo, guardar los cambios sin necesidad de compilar nada, ni mucho menos tener la necesidad de reinstalar nada, que creo es el motivo por el cual usas el txt.

    Porque si mueven el archivo a otra ruta ya tendria que modificar el programa para que leyera la ruta

    Esto es lo que te comento arriba, no tienes que modificar nada en tu software, puedes modificar la cadena usando un formulario par setear el path de ubicación y sobrescribir el anterior, guardas el cambio y listo no tienes que compilar nada.


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 31 de julio de 2017 17:26

Todas las respuestas

  • ¿Por qué tendrías que leer la ruta del archivo de base de datos desde un archivo de texto si podrías tener la cadena de conexión en un archivo de configuración propio de la aplicación?

    Cadenas de conexión y archivos de configuración


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    lunes, 31 de julio de 2017 17:10
  • Hola:

     La primer pregunta que me surge es ¿Por que hacer uso de este archivo txt para seleccionar el path de ubicación de un archivo access?, para estos temas existe el archivo de configuraciones:

     App. Config, cadenas de conexión

      Salvo que me digas que se realiza otro proceso o es un requerimiento imperativo no veo porque complicarte la vida haciendo eso.

     Lee el articulo y analiza si te sirve esa forma de trabajar, te comento también que los valores de la cadena de conexión puede modificarse en tiempo de ejecución:

     Modificar cadena de conexion en tiempo de ejecucion

     Espero que la información sea de utilidad.


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 31 de julio de 2017 17:17
  • Porque si mueven el archivo a otra ruta ya tendria que modificar el programa para que leyera la ruta, ya que si lo guardo en un archivo externo cada vez que se ponga hay la nueva ruta lo leera
    lunes, 31 de julio de 2017 17:21
  • Lo que quiero hacer es poner un archivo de access en una carpeta compartida y poner el programa que lea ese archivo desde cualquier ordenador, y no se como podría hacerlo, entonces lo que pense es en hacer un archivo de texto para modificarlo pero no sabia que se podria hacer desde la app.config, y como podria hacerlo, tengo un textbox con un openfilediag para seleccionar el archivo, como hago para que se me quede guardado la ruta hay y que el programa al iniciarse lo lea?
    lunes, 31 de julio de 2017 17:24
  • Hola:

     Pero esto mismo puedes hacerlo desde al App.Config, editar la key que contiene el valor de la cadena de conexión y listo, eso mismo haces con el archivo de texto, a menos que tengas que este proceso sea automático con alguna otra rutina (que esto mismo es posible hacerlo con al App,Config).

     A lo que voy es que , ¿Porque complicarte la existencia?, .Net te proporciona el App.Config para almacenar información y configuraciones propias de la aplicación, como dije antes, tienes la posibilidad de editar este archivo, guardar los cambios sin necesidad de compilar nada, ni mucho menos tener la necesidad de reinstalar nada, que creo es el motivo por el cual usas el txt.

    Porque si mueven el archivo a otra ruta ya tendria que modificar el programa para que leyera la ruta

    Esto es lo que te comento arriba, no tienes que modificar nada en tu software, puedes modificar la cadena usando un formulario par setear el path de ubicación y sobrescribir el anterior, guardas el cambio y listo no tienes que compilar nada.


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 31 de julio de 2017 17:26
  • Gracias, no sabía de la existencia del archivo app. config, soy un poco nuevo en todo esto jejej
    lunes, 31 de julio de 2017 17:29
  • Hola:

    Lo que quiero hacer es poner un archivo de access en una carpeta compartida y poner el programa que lea ese archivo desde cualquier ordenador,

    Si el equipo tiene acceso a esa unidad compartida, solo define los datos en la key del App.Cofig:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <connectionStrings>
        <add name="cnxString"
             connectionString="Data Source=XXX-PC;Initial Catalog=Directorio;Integrated Security=True"
             providerName="System.Data.SqlClient" />
      </connectionStrings>
    </configuration>

     El valor que debes de llenar es el llamado "connectionString", en el articulo sugerido explico como llenarlo.

     tengo un textbox con un openfilediag para seleccionar el archivo, como hago para que se me quede guardado la ruta hay y que el programa al iniciarse lo lea?

    En este articulo Enrique Martinez explica de una manera muy precisa como modificar los valores de la cadena de conexión utilizando un FileDialogResult:

     Formulario para modificar la cadena de conexión guardada en My.settings en tiempo de ejecución

      Como hacer que desde el inicio lo lea, lo lee si haces algo como esto: 

        Private Sub TestConnection()
            Using cnx As New SqlConnection(ConfigurationManager.ConnectionStrings("cnxString").ToString())
                cnx.Open()
                MessageBox.Show(cnx.State.ToString())
            End Using
        End Sub

    En el articulo sobre App.Cofig uso una base de datos SqlServer pero cambiar los objetos a otra bd es tan sencillo, para access usarías:

     Microsoft ACE OLEDB 12.0

     Remplazando por ejemplo:

     SqlConnection por OleDbConnecion, SqlCommand por OleDbCommand, etc, cada base de datos tiene un equivalente en .Net


    Saludos desde Monterrey, Nuevo León, México!!!


    lunes, 31 de julio de 2017 17:42