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 要配置连接数据库前期 工作。看代码:
cs
DatabaseProviderFactory factory = new DatabaseProviderFactory();
DatabaseFactory.SetDatabaseProviderFactory(factory);
Database db = DatabaseFactory.CreateDatabase("DefaultConnection");
3.1在app.config配置信息
XML
<?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缔造者!