Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Смена дефолтного пути, Интересный глюк. Или не глюк? 
:(
    Опции темы
artstalker
Дата 23.12.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 5.2.2009

Репутация: нет
Всего: нет



Вкратце объясняю:
Есть приложение, которое подключается к БД Access. Путь к файлу БД в строке подключения прописываю просто как имя файла. Чтобы файл приложение искало в своём корне независимо от того куда её кинут.
Так вот. После того как в приложении через OpenFileDialog я открываю файл, который находится не в корневой папке приложения, то после этого приложение пытается коонектится к БД по тому пути, которые я открыл в OpenFileDialog.
Пример для наглядности:
Приложение находится в С:\App.
Т.е. при подключении к БД формируется путь к файлу такой С:\App\base.mdo
Но после того как я через ОpenFileDialog открою С:\App\demo\... (дальше не важно)
То приложение будет формировать путь к БД так С:\App\demo\base.mdo.
Вопрос:
1.Есть ли паблик переменная которая отвечает за это? Чтобы поставить её на место
2.Если нет, то как легче всего поступить? Строка подключения хранится в Properties->Settings 
PM MAIL   Вверх
Экскалупатор
Дата 23.12.2009, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



можно просто получить путь к приложению и построить на его основе путь к базе.
Код

string applicationDirectori = Application.StartupPath.ToString();

PM MAIL ICQ   Вверх
artstalker
Дата 23.12.2009, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 5.2.2009

Репутация: нет
Всего: нет



Мм, загоняюсь.

OpenFileDialog.RestoreDirectory=true;
 smile 
PM MAIL   Вверх
Экскалупатор
Дата 23.12.2009, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



попробуй, кстати, не просто задать имя базы а написать так:
Source=|DataDirectory|\BD.mdb;
PM MAIL ICQ   Вверх
artstalker
Дата 23.12.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 5.2.2009

Репутация: нет
Всего: нет



Цитата(Экскалупатор @  23.12.2009,  01:31 Найти цитируемый пост)
попробуй, кстати, не просто задать имя базы а написать так:
Source=|DataDirectory|\BD.mdb; 

DataDirectory - это каталог приложения?
PM MAIL   Вверх
Экскалупатор
Дата 23.12.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



да.


вообще, если честно, я точно не знаю где это конкретно, в спецификации сказано что это должна быть папка App_Data и оно там ищет базу, но для вин приложения я не в курсе. но у меня оно ищет в каталоге с прогой.

Это сообщение отредактировал(а) Экскалупатор - 23.12.2009, 11:14
PM MAIL ICQ   Вверх
diadiavova
Дата 23.12.2009, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(artstalker @  23.12.2009,  01:21 Найти цитируемый пост)
2.Если нет, то как легче всего поступить? Строка подключения хранится в Properties->Settings  

Настройки приложения можно менять в рантайме. Какие с этим проблемы?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Экскалупатор
Дата 23.12.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



нашел про |DataDirectory|
Цитата

|DataDirectory| (enclosed in pipe symbols) is a substitution string that indicates the path to the database. It eliminates the need to hard-code the full path which leads to several problems as the full path to the database could be serialized in different places. DataDirectory also makes it easy to share a project and also to deploy an application.

 

For example, instead of having the following connection string:

"Data Source= c:\program files\MyApp\Mydb.sdf"

 

Using DataDirectory, you can have the following connection string:

“Data Source = |DataDirectory|\Mydb.sdf”

 

To set the DataDirectory property, call the AppDomain.SetData method. If you do not set the DataDirectory property, the following default rules will be applied to access the database folder:
•  For applications that are put in a folder on the user's computer, the database folder uses the application folder.
•  For applications that are running under ClickOnce, the database folder uses the specific data folder that is created.


источник
PM MAIL ICQ   Вверх
artstalker
Дата 24.12.2009, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 5.2.2009

Репутация: нет
Всего: нет



Спс. Полезная инфа.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.