ASP.NET中的数据库连接配置

时间:2022-04-06 13:12:36

c#访问各数据库的providerName各驱动

如果为Mysql 数据库--->providerName="MySql.Data.MySqlClient"(没装mysql dotnet 安装版的话就得在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG中machine.config加语句了)

在machine.config文件中有这么一段,如果没有name="MySQL Data Provider" 则会出现这种错误。

<system.data>

    <DbProviderFactories>

      <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

      <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

      <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

      <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

      <add name="SQL Server CE Data Provider" invariant="Microsoft.SqlServerCe.Client" description=".NET Framework Data Provider for Microsoft SQL Server 2005 Mobile Edition" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.0.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />

    </DbProviderFactories>

</system.data>

如果为Aceess数据库--->providerName="System.Data.OleDb"

如果为Oracle 数据库--->providerName="System.Data.OracleClient"或者providerName="Oracle.DataAccess.Client"

如果为SQLite数据库--->providerName="System.Data.SQLite"

如果为sql     数据库--->providerName="System.Data.SqlClient"

 

C#中ConnectionStrings和AppSettings的区别

1、ConnectionStrings的用法如下:
<connectionStrings> 
<add name="ConnectionStringName" connectionString="Data Source=服务器名;Initial Catalog=数据库名;User ID=用户;Password=密码" providerName="System.Data.SqlClient" />
</connectionStrings><connectionStrings>
<add name="ConnectionStringName" connectionString="sever=服务器名;database=数据库名;User ID=用户;Password=密码" providerName="System.Data.SqlClient" />
</connectionStrings>

以上两种都可以,如果是在页面中还可以这样引用<%$ ConnectionString:Name%>。

2、AppSettings的用法如下:

<add key="connectionstringName" value="data source=服务器名或IP;initial catalog=数据库名;persist security info=False;user id=用户;password=密码;packet size=4096"> 
</add>

<add key="ConnectionString" value="Data Source=***;User ID=***;Password=***"/>

1)AppSettings 是在2003中常用的,ConnectionStrins是2005中常用的. 
2)使用ConnectionString的好处: 
第一:可将连接字符串加密,使用MS的一个加密工具即可。 
第二:可直接邦定的数据源控件,而不必写代码读出来再赋值给控件。 
第三:可方便的更换数据库平台,如换为Oracle数据库,只需修改providerName。 
3)写在 <appSettings >中用System.Configuration.ConfigurationManager.AppSettings["name"]检索值。 
写在 <ConnectionStrings>中用System.Configuration.ConfigurationManager.ConnectionStrings["name"]检索值。

在 .NET Framework 2.0中,ConfigurationManager类新增了两个属性AppSettings和ConnectionStrings专门用来获取配置文件AppSettings和ConnectionStrings节的数据,使用方法如下:

using System.Configuration; 
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text
= ConfigurationManager.ConnectionStrings["connectionStringsName"].ToString();
Label2.Text
= ConfigurationManager.AppSettings["appSettingsName"].ToString();
}
}

 

 

以下是二者区别

<connectionStrings> 
<add name="SYXTConnectionString" connectionString="Data Source=LEIKE;Initial Catalog=SYXT;User ID=sa;Password=sa"
providerName="System.Data.SqlClient" />
</connectionStrings><appSettings>
<add key="connectionstring1" value="data source=192.168.123.201;initial catalog=webmedlink;persist security info=False;user id=sa;password=KSDChagd2004;packet size=4096">
</add>