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

    技术2022-05-11  77

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

    <script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

    最新回复(0)