Ruta de Base de datos

10/12/2005 - 20:03 por Carolina | Informe spam
Hola buenos dias,

Tengo una aplicación windows que requiere que la ruta de la base de datos
sea dinámica. Para ello, he pensado en guardar la ruta en un txt y habilitar
un botón para que esta sea cambiada cuando sea necesario.
Aquí es donde se me presenta el problema. Estoy utilizando un OpenFileDialog
para capturar la ruta. El problema es que, utilizando un streamwriter,
cuando voy a escribir en el txt, el streamwriter agarra esta ultima ruta
leida por el OpenFileDialog y busca ahi el txt y si no existe lo crea ahi.
Cuando en realidad lo que yo quiero es que me escriba esa ruta en un txt que
tengo dentro de la carpeta de la aplicación, que no necesariamente tiene que
ser la ruta que esta guardada en el Filename de mi objeto OpenFileDialog.
Cómo puedo hacer esto?

Gracias por la atención de antemano,

Carolina
 

Leer las respuestas

#1 SoftJaén
11/12/2005 - 12:12 | Informe spam
"Carolina" escribió:

Tengo una aplicación windows que requiere que la ruta de la base de datos
sea dinámica. Para ello, he pensado en guardar la ruta en un txt ...

... lo que yo quiero es que me escriba esa ruta en un txt que tengo dentro
de la carpeta de la aplicación, ...
Cómo puedo hacer esto?



Hola, Carolina:

Como lo que deseas es conocer la ruta de la carpeta que contiene la base de
datos, en lugar de utilizar un objeto «OpenFileDialog», yo te aconsejaría
que, siempre y cuando la base de datos tenga el mismo nombre, usaras un
objeto «FolderBrowserDialog», de esta manera te aparecería el típico cuadro
de diálogo «Buscar carpeta», para que el usuario especifique la carpeta
donde se encuentra la base de datos. Para ello, más o menos te podría servir
la siguiente función:

Public Function BuscarCarpeta(Optional ByVal folderName _
As String = "") As String

' Muestro el control FolderBrowserDialog.
Dim fb As New FolderBrowserDialog

With fb
.ShowNewFolderButton = False
.Description = "Especificar la carpeta de la base de datos."
.SelectedPath = folderName
End With

Dim result As DialogResult = fb.ShowDialog

If (result = DialogResult.OK) Then
Return fb.SelectedPath
Else
Return Nothing
End If

End Function

El parámetro opcional «folderName» es por si deseas especificar una ruta
inicial de alguna carpeta en especial.

A la función, simplemente la llamarías de la siguiente manera:

' Si el nombre de la ruta lo vas a utilizar en varios procedimentos.
' la variable la declararías a nivel del módulo
Private carpeta As String

Private Sub Button1_Click( ... ) Handles Button1.Click

' Comprobamos si existe el archivo de texto
' que contiene la ruta de la base de datos
If System.IO.File.Exists("Archivo.txt") = True Then
' Si existe el archivo, leemos la ruta
Dim sr As New System.IO.StreamReader("Archivo.txt")
carpeta = sr.ReadToEnd
sr.Close()
Else
' Creo el archivo y guardo la ruta
carpeta = BuscarFolderContaPlus(Me, "C:\Mis documentos")
If carpeta = Nothing Then
MessageBox.Show("Debe especificar la ruta que contiene la " & _
"base de datos.", _
"Buscar carpeta de archivos", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
Dim sw As New System.IO.StreamWriter("Archivo.txt")
sw.Write(carpeta)
sw.Close()
End If
End If

End Sub

En fin, adapta el código a tus necesidades y espero que te sea de utilidad.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares