1,前言
项目在VS2022下开发的,用的.NET Framework 4.7.2,在Nuget包管理器安装EnterpriseLibrary.Data(6.0.1304)。
2,程序错误信息:
程序执行失败:Database provider factory not set for the static DatabaseFactory. Set a provider factory invoking the DatabaseFactory.SetProviderFactory method or by specifying custom mappings by calling the DatabaseFactory.SetDat前言abases method.
3,解决问方法:
3.0 要配置连接数据库前期 工作。看代码:
DatabaseProviderFactory factory = new DatabaseProviderFactory(); DatabaseFactory.SetDatabaseProviderFactory(factory); Database db = DatabaseFactory.CreateDatabase("DefaultConnection");3.1在app.config配置信息
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <!-- 配置Enterprise Library数据模块 --> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"/> </configSections> <!-- 2. 指定默认数据库(指向下面connectionStrings中的name) --> <dataConfiguration defaultDatabase="DefaultConnection" /> <!-- 3. 定义连接字符串 --> <connectionStrings> <!-- 以下示例连接字符串,请按您的数据库类型选择并修改 --> <!-- 用于 SQL Server TestSort_num DATA_CMS--> <!--connectionString="Data Source=SK-20320110RSWP;Initial Catalog=TestSort_num;User ID=sa;Password=123;Integrated Security=True;"--> <add name="DefaultConnection" connectionString="Data Source=SK-20320110RSWP;Initial Catalog=DATA_CMS;User ID=sa;Password=123;Integrated Security=True;" providerName="System.Data.SqlClient" /> <!-- 用于 Oracle --> <!-- <add name="YourConnectionStringName" connectionString="User Id=user;Password=pass;Data Source=source;" providerName="System.Data.OracleClient" /> --> <!-- 如果使用其他数据库(如MySQL),可能需要额外在<system.data>节点中注册提供程序 --> </connectionStrings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> </configuration>谢谢观看,不是在改Bug路上,就是制造bug缔造者!