企业类库6.0访问数据库报错

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.SetDatabases method.

使用企业类库6.0访问数据库和以前版本方法稍有不同,在此记录一下。

企业类库以前版本:

配置文件:

<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="SqlConnection" />
<connectionStrings>
<add name="SqlConnection" connectionString="Server=.\sql2008;Database=db;User ID=sa;Password=password" providerName="System.Data.SqlClient" />
</connectionStrings>

6.0版配置文件:

<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="SqlConnection" />
<connectionStrings>
<add name="SqlConnection" connectionString="Database=db;Server=.\sql2008;user id=sa;password=password" providerName="System.Data.SqlClient" />
</connectionStrings>

由此可见,配置文件只有版本号的变化,内容没有变化。

5.0版本使用方法:

private Database db;
public CloudData()
{
db = DatabaseFactory.CreateDatabase("sqlConnection");
}

6.0版本使用方法:

方法一:

private Database db;
public SqlDal()
{
DatabaseProviderFactory factory = new DatabaseProviderFactory();
db = factory.Create("SqlConnection");
}

方法二:

private Database db;

static SqlDal()
{
DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory());
}
public SqlDal()
{
db = DatabaseFactory.CreateDatabase("SqlConnection");
}

 

转载于:https://www.cnblogs.com/xyza/p/7126531.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值