[dba-VB] How to specify a relative path to an MS Access db inapp.config?

Shamil Salakhetdinov shamil at smsconsulting.spb.ru
Fri Jan 14 16:09:27 CST 2011


Thank you, Gustav,

First of all I do use MS Access backend for that my simple application.
Yes, I can write a couple of code lines to customize connection creation on
runtime but I wanted to avoid doing that additional coding.

The following static solution works well

<connectionStrings>
     <add
name="ProductPicturesLocator.Properties.Settings.TestDataConnectionString"
        connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=.\Database\TestData.mdb"
        providerName="System.Data.OleDb" /> </connectionStrings>

I just need to keep watching to have current directory within that
application to be always equal to the app.config's assembly directory...

Thank you.

--
Shamil
 
-----Original Message-----
From: dba-vb-bounces at databaseadvisors.com
[mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
Sent: 15 ?????? 2011 ?. 0:29
To: dba-vb at databaseadvisors.com
Subject: Re: [dba-VB] How to specify a relative path to an MS Access db
inapp.config?

Hi Shamil

This guy seems to have found a method to specify a relative path as a
parameter - which is little different from your connection string:

http://www.eggheadcafe.com/community/aspnet/2/10213449/set-relative-path-in-
windows-application.aspx 

However, you later should be able to easily modify your connection string
using the SqlConnectionStringBuilder:

       private SqlConnection ConnectionApplyPassword(string
connectionString)
        {
            // Apply password to connectionString.
            SqlConnectionStringBuilder sqlConnectionStringBuilder = new
SqlConnectionStringBuilder();
            sqlConnectionStringBuilder.ConnectionString = connectionString;
            sqlConnectionStringBuilder.Password = _connectionDbPassword;
            return new SqlConnection(sqlConnectionStringBuilder.ToString());
        }

like this:

     someDataTableAdapter.Connection = 
 
ConnectionApplyPassword(someDataTableAdapter.Connection.ConnectionString);

/gustav


>>> shamil at smsconsulting.spb.ru 14-01-2011 17:51 >>>
Hi All --

That should be simple(?) but google somehow doesn't give any useful feedback
(or I'm missing it).

I wanted to have the following connection string from app.config to use
relative path to MS Access db - relative to the folder where app.config (its
assembly) will be installed on target system:

<connectionStrings>
     <add
name="ProductPicturesLocator.Properties.Settings.TestDataConnectionString"
        connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=.\Database\TestData.mdb"
        providerName="System.Data.OleDb" /> </connectionStrings>

If I write:

Data Source=.\Database\TestData.mdb

it works on start-up and when I work with main form, but as soon as I use,
e.g., OpenFile fialog, which changes default folder main form's update which
is bound do a dataset which uses the above connection string fails to update
db as it gets now improper fullpath  for db...

Isn't there something like 

Data Source=~\Database\TestData.mdb

or

Data Source={Application}\Database\TestData.mdb

or

...

way to specify "stable" relative path to the MS Access db - relative to the
app.config's assembly location?

I do not want to use DSN...

Thank you.

--
Shamil



_______________________________________________
dba-VB mailing list
dba-VB at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-vb
http://www.databaseadvisors.com




More information about the dba-VB mailing list