问题描述
有没有方法管理数据库的路径?我需要在每个客户端创建和使用不同的数据库。主要是,我需要管理 为Firebird,DB2,Pervasive,Access,Postgre,MS SQL Server. 创建不同的数据库。任何例子...
解决方案
通常,数据库连接字符串包括一个数据库文件的路径,你可以允许终端用户在你的应用程序配置文件中改变数据库路径,例如:
<!--
App.config
-->
<?
xml version="1.0" encoding="utf-8"
?>
<
configuration
>
<
appSettings
>
<
add
key
="ServerType"
value
="Access"
/>
<
add
key
="Server"
value
=""
/>
<
add
key
="Database"
value
="E:data.mdb"
/>
<
add
key
="User"
value
=""
/>
<
add
key
="Password"
value
=""
/>
</
appSettings
>
</
configuration
>
通过AppSettingReader类来获取配置文件中的设置,然后组合一个连接字符串。我们建议你使用Provider类的GetConnectString方法来(在DevExpress.Xpo.DB命名空间)。
using
System.Configuration;
using
DevExpress.Xpo;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
private
static
string
GetConnectionString()
...
{
AppSettingsReader config = new AppSettingsReader();
string serverType, server, database, user, password;
serverType = ((string)(config.GetValue("ServerType", typeof(string))));
server = ((string)(config.GetValue("Server", typeof(string))));
database = ((string)(config.GetValue("Database", typeof(string))));
user = ((string)(config.GetValue("User", typeof(string))));
password = ((string)(config.GetValue("Password", typeof(string))));
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
switch(serverType) ...{
case "MSSQL":
return DevExpress.Xpo.DB.MSSqlConnectionProvider.GetConnectionString(server, user, password, database);
case "Access":
return DevExpress.Xpo.DB.AccessConnectionProvider.GetConnectionString(database, user, password);
// ... generate connection strings for other providers, e.g. MySql, Firebird, etc.
default:
return Session.GetDefaultConnectionString();
}
}
在应用程序的入口,连接字符串必须被赋值到DefaultSession对象。
[STAThread]
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
static
void
Main()
...
{
DevExpress.Xpo.Session.DefaultSession.ConnectionString = GetConnectionString();
Application.Run(new Form1());
}
原文地址https://www.devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=A2954&searchtext=access&pgid=ecb3be56-c75a-4166-aa68-cb462cd2dd2b&pid=efd320a2-e35b-4ac0-9f1d-9dd145c062f3
<script type="text/javascript">
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>