текущая директория "убегает"

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

текущая директория "убегает"

Сообщение student-uni » 20.06.2006 (Вт) 21:02

Я пишу каждые десять секунд в Аксесс файл.
(Работает Elapsed timer
Создан коннектор OLEDB ну и
connection.open
execute.nonquery
connection.close)

В коннекторе указана база данных без полного пути,
тобишь искать в том же каталоге что и сама прога,
те в рабочем каталоге.

Так вот при открытии окна диалога
"убегает" текущая директория
Делаю

Код: Выделить всё
Dim OpenFileDialog1 As New OpenFileDialog
        Dim sb As New System.Text.StringBuilder
        With OpenFileDialog1
            .InitialDirectory = "C:\" 'или текущая
            With sb
                .Append("*.exe")
                .Append("|*.exe")
                .Append("|*.com")
                .Append("|*.com")
                .Append("|*.bat")
                .Append("|*.bat")
            End With
            .Filter = sb.ToString
            .RestoreDirectory = True
            If .ShowDialog() = DialogResult.OK Then

                Return .FileName
            End If



Если пользователь начнёт с текущей директори а потом будет просматривать диск - то при попытке установить соединение с базой данных произойдёт ошибка.
И это верно, т.к. полный путь к базе не указан,
а текущая директория изменилась.

Можно конечно:
- получить и прописать полный путь к базе в коннекшн стринг
- остановить таймер на время просмотра пользователем
OpenFileDialog
- изменить текущую директорию и переопределитть коннекшн стринг каждый раз при записи а потом возвращать исходное значение.

Вопрос - кто придумает умнее выход из положения

Спасибо

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 20.06.2006 (Вт) 22:39

А почему бы при старте программы не запоминать директорию?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 21.06.2006 (Ср) 16:01

Пардон,
Путь к базе стоит полный !
(Не посмотрел)
А директория убегает.
Я выкрутился тем что перед открытием OpenFileDialog выставляю булеву переменную
а потом убираю её.
А таймер смотрит, если булева стоит - то он не пишет. Но всё же интересно как же ОpenFileDialog1.InitialDirectory функционирует ?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 22.06.2006 (Чт) 7:46

что то ты все с ног на голову поставил. Я уже вообще ничего не понимаю. Подозреваю что тебе нужна не текущая папка, а Application.StartupPath
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 87

    TopList  
cron