Приложение.относительный путь строки подключения config
мне нужно установить в приложение.настройте строку подключения sqlite. Я хочу установить путь относительно папок отладки/выпуска, в которые будет скопирован файл базы данных.
<add name="EmailsSQLite" connectionString="data source=c:UsersTestDocumentsVisual Studio 2008ProjectsTestConsoleEmailsdataEmailDatabase.sqlite" providerName="System.Data.SQLite"/>
и я хочу иметь что-то вроде:
<add name="EmailsSQLite" connectionString="data source=dataEmailDatabase.sqlite" providerName="System.Data.SQLite"/>
это возможно?
3 ответов
можно указать относительный путь, как описано в ответе левши.
однако это будет относительно текущего рабочего каталога, который не обязательно будет каталогом, содержащим исполняемый файл.
один из способов-изменить строку подключения перед ее использованием, например
в приложение.config:
connectionString="data source={AppDir}\data\EmailDatabase.sqlite
в коде:
ConnectionStringSettings c = ConfigurationManager.ConnectionStrings[name];
if (c == null)
{
... handle missing connection string ...
}
string fixedConnectionString = c.ConnectionString.Replace("{AppDir}", AppDomain.CurrentDomain.BaseDirectory);
... use fixedConnectionString
попробуйте использовать "."перед первой обратной косой чертой в части источника данных строки.
например.
data source=.\data\EmailDatabase.sqlite
Да, это возможно. Попробуйте использовать |DataDirectory|.
В Приложение.config
<add name="SqliteConnectionString" connectionString="Data Source=|DataDirectory|\Database.sqlite;" providerName="System.Data.SQLite"/>
дополнительная информация на этой странице https://msdn.microsoft.com/en-us/library/cc716756.aspx