您的位置:首页 > 数据库

在XPO中怎么通过配置文件来读取数据库链接

2007-02-09 11:05 567 查看
问题描述
有没有方法管理数据库的路径?我需要在每个客户端创建和使用不同的数据库。主要是,我需要管理 为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;






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))));




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]




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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: