расположение корневой базы данных - PullRequest
0 голосов
/ 05 ноября 2010

Я не знаю, где разместить базу данных, чтобы, когда у меня будет окончательное приложение .exe, в его папке была другая папка с данными, а в этой папке - db.mdf. Вот моя строка подключения:

con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename='C:\\Users\\alex\\Documents\\Visual Studio 2010\\Projects\\Network_Remote_Monitoring\\Network_Remote_Monitoring\\data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True";

(т. Е. Я бы хотел относительную ссылку на БД, что-то вроде AttachDbFilename = ". \ Data \ bd.mdf")

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

что когда у меня будет мое последнее приложение .exe, в его папке я бы другая папка данных и в этой папке дб.мдф

НЕ ДЕЛАЙТЕ ЭТОГО. Базы данных никогда не должны жить:

  • В папке программ
  • На сетевом диске (начиная с \).

Зачем это так прикреплять? В большинстве случаев (все, над чем я когда-либо работал) базы данных явно хранятся на сервере. Локальные базы данных должны находиться либо в папке данных программы пользователя (НЕ ДОКУМЕНТЫ!), Либо в общей.

Проверьте http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx на наличие списка специальных папок.

Требуется либо ApplicationDataa, LocalApplicationData (не реплицируется), либо CommonApplicationData, если вам действительно необходимо сохранить базу данных локальной.

1 голос
/ 05 ноября 2010

относительный путь data\\bd.mdf не работает в соединениях? например.,

con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='data\\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True";

В противном случае вы можете использовать текущий ярлык каталога, например, что-то вроде

string dbdirectory = System.IO.Directory.GetCurrentDirectory() + "\\data\\bd.mdf"
con.ConnectionString = "DataSource=.\\SQLEXPRESS;AttachDbFilename='" 
+ dbdirectory + "';Integrated Security=True;Connect Timeout=30;User Instance=True";

Или вы можете даже открыть диалоговое окно файла и спросить пользователя, где он хочет сохранить данные программы, и получить полный путь оттуда.

РЕДАКТИРОВАТЬ: Это, как вы могли бы достичь того, что вы хотите, однако я бы предложил хранить БД в другом месте, как @TomTom предложил

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...