deployment and database location

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi all
I have made a vb.net windows app that works great in design. But after deploying the app on the same design computer (my own) the app can not find any of the two databases it needs to operate. I have tried setting their connection strings to application.startupath, but with no luck.
My question is, what is the correct way to code a connection string so that it will be seen by the app on any computer when deployed, especially when one of the databases has a dataset.
Right now I have a copy of both databases in the application folder and in the bin and debug folders for testing and they are still not found by the .exe
 
Post your connection strings and tell us where the databse is in reality (
path \\servername\share\dbname )



--

OHM ( Terry Burns )
. . . One-Handed-Man . . .

Time flies when you don't know what you're doing

Ben said:
Hi all
I have made a vb.net windows app that works great in design. But after
deploying the app on the same design computer (my own) the app can not find
any of the two databases it needs to operate. I have tried setting their
connection strings to application.startupath, but with no luck.
My question is, what is the correct way to code a connection string so
that it will be seen by the app on any computer when deployed, especially
when one of the databases has a dataset.
Right now I have a copy of both databases in the application folder and in
the bin and debug folders for testing and they are still not found by the
..exe
 
Ok
Here are the two strings I now use

Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Replace(Application.StartupPath, "bin", "") & "Book.mdb"

This one below is the one to which there is a dataset attached and the code is copied from in the Windows Form Designer generated code area:

Me.odcBooks.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
"ocking Mode=1;Data Source=""C:\Documents and Settings\My Name\My Documents\V" & _
"isual Studio Projects\About My Books\Books.mdb"";Jet OLEDB:Engine Type=5;Pro" & _
"vider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;p" & _
"ersist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:E" & _
"ncrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Cop" & _
"y Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID" & _
"=Admin;Jet OLEDB:Global Bulk Transactions=1"
 
The reason is simple.

You originally were in a Bin folder at the end of your project directory
structure. Your replace replaces Bin with "", this leaves you with

..........\

However, when you deploy this, if your directort does not end in bin, then
no replace is done. So Lets say you deployed to C:\TEST, your formula for
the connection string would result in the following


C:\TESTBOOK.MDB


SO . . . use a preprocessor directive

#If DEBUG Then

'Set your paths accordingly

#Else

'set your paths accordingly

#End If

OR

Add an app.config file and set a new key for this and have your program
read it on startup.









--

OHM ( Terry Burns )
. . . One-Handed-Man . . .

Time flies when you don't know what you're doing

Ben said:
Ok
Here are the two strings I now use

Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Replace(Application.StartupPath, "bin", "") & "Book.mdb"
This one below is the one to which there is a dataset attached and the
code is copied from in the Windows Form Designer generated code area:
Me.odcBooks.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet
OLEDB:Registry Path=;Jet OLEDB:Database L" & _
 
Back
Top