C# 本地文件的OleDb连接字符串

C# 本地文件的OleDb连接字符串,c#,database-connection,connection-string,oledbconnection,C#,Database Connection,Connection String,Oledbconnection,我正在使用OleDb连接到MS Access(v2003)数据库,我的项目文件夹是MyHotApps,我的OleDb连接字符串是 MyConString=@“Provider=Microsoft.Jet.OLEDB.4.0;数据源='C:\Users\Some User\Documents\Visual Studio 2010\WebSites\MyHotApps\Database\MyDbFile.mdb' 如上所述,我的项目文件夹是MyHotApps,数据库文件MyDbFile.mdb位于P

我正在使用OleDb连接到MS Access(v2003)数据库,我的项目文件夹是
MyHotApps
,我的OleDb连接字符串是

MyConString=@“Provider=Microsoft.Jet.OLEDB.4.0;数据源='C:\Users\Some User\Documents\Visual Studio 2010\WebSites\MyHotApps\Database\MyDbFile.mdb'

如上所述,我的项目文件夹是
MyHotApps
,数据库文件
MyDbFile.mdb
位于
Project\u folder\database\MyDbFile.mdb

因此,对我来说,数据库文件在项目文件夹中太过本地,我需要一个可移植的连接字符串,无论我在哪里获取项目文件夹,我都不应该重写连接字符串,因为我尝试了以下方法,但没有成功

MyConString=@“Provider=Microsoft.Jet.OLEDB.4.0;数据源“=~Database\MyDbFile.mdb”

有谁能帮我建立一个可移植的连接字符串吗?我读了一些表格,上面说数据库文件应该放在App_数据文件中,我也不知道怎么做。任何人都可以告诉我建立便携连接字符串的方法。

你可以利用

并采取以下措施可以轻松解决您的可移植路径问题

Request.PhysicalApplicationPath
你熟悉吗?将其与相关类一起使用,如
SqlConnectionStringBuilder
允许您使用简单的构造函数和属性来构建所需的内容。此外,System.IO.Path类还可以方便地构造目录路径。通常,当我需要一个默认的项目目录(在WPF应用程序中)时,我使用
AppDomain.CurrentDomain.BaseDirectory
。然后我使用Path.Combine(base,filename)创建文件的完整字符串


System.IO.Directory
System.IO.DirectoryInfo
也很有用。

使用
Request.ApplicationPath
只响应我
\MyHotApps
仅此而已。不幸的是,无法在类文件中使用请求,在使用HttpRequest.PhysicalApplicationPath时需要获取错误对象。明白了吗使用System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;让它与System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath一起工作;