Ik heb een asp.net applicatie met de connectionstring netjes in de web.config. Werkt allemaal prima, totdat ik besluit dat de website op de live server natuurlijk ergens anders staat, en de database natuurlijk ook. Het gaat om een Access (Jet) database en daarmee gebruik ik dus de OleDb provider. Dat betekent dat de connectionstring een parameter "Data Source" met als waarde het absolute pad naar de database vereist:
Dit werkt natuurlijk prima, maar ik wil eigenlijk dat ie automagisch een Server.MapPath eroverheen gooit, zodat ik netjes "~/App_Data/Database.mdb" erin kan plempen. Ik heb al een algoritme om dit te doen enzo, maar begrijp niet waar ik de nieuwe connectionstring dan laat. In Application_Start() probeerde ik ConfigurationManager.ConnectionStrings["LocalAccessDatabase"].ConnectionString te zetten, maar dat is readonly (waarom is de property zelf dan read/write
) in runtime. Hetzelfde geldt voor ConfigurationManager.ConnectionStrings.Add(...);
Hoe zorg ik er nou voor dat ik een relatief pad naar de database kan gebruiken, en tegelijkertijd ConfigurationManager.ConnectionStrings kan blijven gebruiken
XML:
1
2
3
4
| <connectionStrings> <clear/> <add name="LocalAccessDatabase" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Source\SKSW\App_Data\Database.mdb;" providerName="System.Data.OleDb"/> </connectionStrings> |
Dit werkt natuurlijk prima, maar ik wil eigenlijk dat ie automagisch een Server.MapPath eroverheen gooit, zodat ik netjes "~/App_Data/Database.mdb" erin kan plempen. Ik heb al een algoritme om dit te doen enzo, maar begrijp niet waar ik de nieuwe connectionstring dan laat. In Application_Start() probeerde ik ConfigurationManager.ConnectionStrings["LocalAccessDatabase"].ConnectionString te zetten, maar dat is readonly (waarom is de property zelf dan read/write
Hoe zorg ik er nou voor dat ik een relatief pad naar de database kan gebruiken, en tegelijkertijd ConfigurationManager.ConnectionStrings kan blijven gebruiken
日本!🎌