C# 在不指定完整路径名的情况下,连接到保存在电脑任意位置的数据库(MS Access)的命令是什么
如果您使用的语言允许您构建路径,例如C#: 默认情况下,将为您提供所有用户共享的C# 在不指定完整路径名的情况下,连接到保存在电脑任意位置的数据库(MS Access)的命令是什么,c#,C#,如果您使用的语言允许您构建路径,例如C#: 默认情况下,将为您提供所有用户共享的c:\ProgramData文件夹的路径 因此: 通常,您不会在代码中存储固定路径。这将使您的应用程序很难安装到客户的PC上。 认识到这一点,NET framework提供了一个基础结构,用于将此类信息存储在外部基于XML的文件中(在发布应用程序时命名为yourexename.exe.config,在项目内部命名为app.config。 您可以在那里存储需要逐个客户更改的此类信息 所以你的app.config可以用这
c:\ProgramData
文件夹的路径
因此:
通常,您不会在代码中存储固定路径。这将使您的应用程序很难安装到客户的PC上。
认识到这一点,NET framework提供了一个基础结构,用于将此类信息存储在外部基于XML的文件中(在发布应用程序时命名为
yourexename.exe.config
,在项目内部命名为app.config
。您可以在那里存储需要逐个客户更改的此类信息 所以你的app.config可以用这种方式制作一个部分
string AccessDbPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"YourAppFolder\\TaxApp.accdb");
您甚至可以使用“项目属性”菜单存储整个连接字符串,并在“设置”页面中添加ConnectionString类型的新条目
同样,您在其中键入的内容将存储在app.config文件的特定部分中
string dbFile = ConfigurationManager.AppSettings["DatabasePath"].ToString();
connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
Data source =" + dbFile +
";Persist Security Info=False");
请参见这是无法避免的。您需要指定路径。(参考点的全部或部分,但仍然…)也许您的意思是将路径存储在配置文件中,您可以在其中轻松更改它以适应您的客户环境
string AccessDbPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"YourAppFolder\\TaxApp.accdb");
<appSettings>
<add key="DatabasePath" value="C:\programdata\MyApp\Database.accdb" />
</appSettings>
string dbFile = ConfigurationManager.AppSettings["DatabasePath"].ToString();
connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
Data source =" + dbFile +
";Persist Security Info=False");
<connectionStrings>
<add name="MyDb" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;
Data source=C:\programdata\MyApp\Database.accdb;
Persist Security Info=False";/>
</connectionStrings>
string myConnectionString = ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString;