I think if you check, that
System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase)
returns a path preceded by "file:" which will confuse the normal processing.
Try using:
Dim AppPath As String = Directory.GetCurrentDirectory()
Use it at startup, and store your connection string in a class level variable so you don't have to re-generate it (CurrentDirectory can change while your App is running.)