EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

将XAF应用程序连接到数据库提供程序

当应用程序首次运行时,将自动创建其数据库。在以下以调试模式运行的过程中,应用程序将连接到相同的数据库并根据需要对其进行更新。当应用程序以发布模式运行时,默认情况下不会更新数据库。有关详细信息,请参阅创建和更新应用程序的数据库话题。如果您需要重新创建数据库,只需将其从数据库服务器中删除或删除文件,它将自动重新创建它。默认情况下,XAF解决方案配置为使用通过集成安全性访问的本地系统上的Microsoft SQL Server Express实例。将以您创建的解决方案的名称在该服务器上创建一个数据库。但是,用作对象关系映射层的XPO支持十几个数据库管理系统。因此,您可以更改默认连接。为此,您需要指定所需的连接设置,并引用所需的数据库提供程序连接器程序集。本主题描述了几种方法,使您可以将XAF应用程序连接到所需的数据库提供程序。

方法1.通过应用程序项目的配置文件指定连接字符串

当您需要访问已编译的应用程序中的连接字符串时,请通过应用程序项目的配置文件进行指定。

  • App.config-WinForms应用程序项目的配置文件。
  • Web.config-一个ASP.NET Web应用程序项目的配置文件。

默认情况下,这些配置文件包含connectionStrings部分,该部分具有许多带注释的示例连接字符串。您可以取消注释和自定义现有连接字符串之一,或通过以下方式指定新的连接字符串。

<connectionStrings>
   <add name="ConnectionString" connectionString=
        "Integrated Security=SSPI;Pooling=false;Data Source=.\SQLEXPRESS;Initial Catalog=MainDemo" />
</connectionStrings>
重点

在XPO应用程序中,初始连接字符串声明将Pooling设置为false,从而覆盖默认的true值并禁用SQL Server Connection Pooling。我们不建议删除“ Pooling = false; ”或将Pooling设置为true。XPO使用具有禁用池功能的单独连接来创建新数据库。如果启用了池,则SQL Server尝试创建数据库并尝试使用池中的现有连接。这将导致错误,因为未通知连接已创建数据库。

请注意,默认情况下,XAF应用程序项目被配置为连接到MS Access和MS SQL Server。但是,如果连接到其他服务器,则需要执行两个附加步骤。

  1. 在应用程序项目中引用所需的数据库提供程序连接器程序集。XPO支持的数据库系统文档中提供了不同数据库提供程序所需的程序集的完整列表。
  2. 在连接字符串中指定适当的XpoProvider参数值。有关如何为XPO提供程序创建正确的连接字符串的信息,请参见不同数据库提供程序的可能值的完整列表。知识库文章。

当注释连接字符串或未在配置文件中指定连接字符串时,应用程序将使用在应用程序设计器中指定的连接字符串。以下代码提供了此功能,以下代码会自动添加到每个XAF解决方案中。

WinForms

public static void Main(string[] arguments) {
   MySolutionWinApplication winApplication = new MySolutionWinApplication();
   //...
   if(ConfigurationManager.ConnectionStrings["ConnectionString"] != null) {
      winApplication.ConnectionString = ConfigurationManager.
         ConnectionStrings["ConnectionString"].ConnectionString;
   }
   winApplication.Setup();
   winApplication.Start();
   //...
}

ASP.NET

public class Global : System.Web.HttpApplication {
   protected void Session_Start(object sender, EventArgs e) {
      WebApplication.SetInstance(Session, new MySolutionWebApplication());
      //...
      if(ConfigurationManager.ConnectionStrings["ConnectionString"] != null) {
         WebApplication.Instance.ConnectionString = ConfigurationManager.
            ConnectionStrings["ConnectionString"].ConnectionString;
      }
      WebApplication.Instance.Setup();
      WebApplication.Instance.Start();
   }
   //...
}
注意

从上面的代码中可以看到,名为“ ConnectionString”的元素用于从配置文件中获取连接字符串。因此,除非您在应用程序代码中更改了相应的字符串,否则不要重命名此元素。

方法2.通过应用程序设计器指定连接字符串

您可以通过“应用程序设计器”的“连接”部分指定连接字符串。在本节中选择“连接”项,以在“属性”窗口中修改ConnectionString属性。此外,您可以将SQL连接替换为另一个可用的连接。为此,将所需的连接从“工具箱”拖动到“连接”部分,然后根据需要指定ConnectionString属性。

ApplicationDesigner_Connection_1

当您将在所需的连接工具箱连接部分,所需的数据库提供组件自动引用。如果所需的连接组件不可用,请右键单击“工具箱”以调用“选择工具箱项”对话框,勾选所需的连接组件,然后单击“确定”

注意

在应用程序配置文件中指定的连接字符串将覆盖在“应用程序设计器”中指定的连接字符串。这样做是为了向应用程序管理员提供一个选项,可以更改数据库连接而无需重新编译应用程序。

获取数据库的连接字符串

您可以通过XPO数据存储适配器类获取格式正确的连接字符串。这些类位于DevExpress.Xpo.v 19.2程序集的DevExpress.Xpo.DB命名空间中。每个适配器类都包含GetConnectionString方法。使用此方法可使用指定的参数获取与数据库的连接字符串。XPO支持的数据库系统主题中列出了所有XPO适配器类。

以下代码段演示了如何使用具有“ pwd”密码的“ usr”帐户连接到位于“ DBSERVER”服务器上的“ MyApp” MySql数据库。该MySql.Data组装必须在应用程序项目引用。

WinForms

using DevExpress.Xpo;
using DevExpress.Xpo.DB;
//...
public static void Main(string[] arguments) {
   MySolutionWinApplication winApplication = new MySolutionWinApplication();
   //...
   winApplication.ConnectionString = 
      MySqlConnectionProvider.GetConnectionString("DBSERVER", "usr", "pwd", "MyApp");
   winApplication.Setup();
   winApplication.Start();
   //...
}

ASP.NET

using DevExpress.Xpo;
using DevExpress.Xpo.DB;
//...
public class Global : System.Web.HttpApplication {
   protected void Session_Start(object sender, EventArgs e) {
      WebApplication.SetInstance(Session, new MySolutionWebApplication());
      //...
      WebApplication.Instance.ConnectionString = 
         MySqlConnectionProvider.GetConnectionString("DBSERVER", "user", "pwd", "MyApp");
      WebApplication.Instance.Setup();
      WebApplication.Instance.Start();
   }
   //...
}

如果要使用上述第一种或第二种方法指定连接字符串,请在调试器中查看GetConnectionString方法返回的值,然后将其复制到“应用程序设计器”或配置文件中。请注意,GetConnectionString方法返回的字符串包含附加的XpoProvider参数。它标识应建立连接的数据库类型。因此,由GetConnectionString方法返回的字符串与标准连接字符串格式不完全兼容。您可以在配置文件中使用此连接字符串,而无需进行修改,但是必须删除多余的参数才能在配置文件中使用该字符串。应用设计器

转载保留此链接,注明出处