Строка подключения OleDb для локального файла - PullRequest
1 голос
/ 24 февраля 2012

Использование OleDb Я подключаюсь к базе данных MS Access (v2003), и моя папка Project - MyHotApps, а моя строка подключения OleDb -

MyConString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Users\Some User\Documents\Visual Studio 2010\WebSites\MyHotApps\Database\MyDbFile.mdb'";

Как упоминалось выше, папка моего проекта MyHotApps, а файл базы данных MyDbFile.mdb находится в Project_Folder<MyHotApps>\Database\MyDbFile.mdb

Таким образом, для меня слишком локально, что файл базы данных находится внутри папки проекта, и мне нужна Portable Connection String , где бы я ни брал папку проекта, я не должен переписывать Connection String для этого, я попробовал ниже способ, который не работал

MyConString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source'=~Database\MyDbFile.mdb'";

Кто-нибудь может мне помочь, как создать Portable Connection String Я прочитал некоторые формы, в которых говорится, что файл базы данных должен быть помещен в файл App_Data, и я не знаю, как это сделать. Кто-нибудь, пожалуйста, скажите мне как-нибудь построить портативную строку подключения.

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Вы знакомы с OldDbConnectionStringBuilder?Использование этого вместе со связанными классами, такими как SqlConnectionStringBuilder, позволяет вам использовать простые конструкторы и свойства для создания того, что вам нужно.Кроме того, класс System.IO.Path удобен для создания путей к каталогам.Обычно, когда мне нужен каталог проекта по умолчанию (в приложении WPF), я использую AppDomain.CurrentDomain.BaseDirectory.Затем я использую Path.Combine (base, filename) для создания полной строки в файле.

System.IO.Directory и System.IO.DirectoryInfo также полезны.

1 голос
/ 24 февраля 2012

Вы можете использовать HttpRequest.PhysicalApplicationPath

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

Request.PhysicalApplicationPath
...