在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置。

 <configuration>
<appSettings>
<add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=true"/>
<add key="connstr2" value=".........">
</appSettings>
<connectionStrings>
<add name="connstr3" connectionString="........" />
<add name="connstr4" connectionString="......" providerName="System.Data.Sqlclient"
</connectionStrings>
</configuration>

如上代码所示:两种方式为appSettings和connectionStrings

appSettings:

①它是asp.net1.1的时候用的,在vs2003中用的

②里面存的相当于键值对的形式,key和value。不仅仅可以存连接字符串,还可以存储一些配置项。

③在appSettings中,不能使用ProviderName="System.Data......."(不过如果你要用也可以,只要写在value里面就可以了,当成值传递过去)

④在后台取值方式用代码:

 string conn=System.Configuration.ConfigurationManager.AppSettings["connstr";]

connectionStrings:

①它是asp.net2.0中新增的。

②里面存的也类似于键值对的形式,使用的是name和connectionString,一般就存连接字符串。

③在connectionStrings中可以,可以使用providerName.

④在后台代码,取值的方式:

 string conn=System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

既然connectionStrings是2.0版本出来的,那它肯定比appsettings有好处了:

网上如是说:

① 可将连接字符串加密,使用MS的一个加密工具即可。 
         ② 可直接邦定的数据源控件,而不必写代码读出来再赋值给控件。 
         ③ 可方便的更换数据库平台,如换为Oracle数据库,只需修改providerName

providerName它的作用是什么呢?

我们先看一下providerName的参数值。

 ①providerName="System.Data.SqlClient"  ----说明使用的是MSSQLServer数据库
②providerName="System.Data.SqlLite" ----说明使用的是SQLLite数据库
③providerName="System.Data.OracleClient" ----说明使用的是Oracle数据库
或providerName="System.Data.Oracle.DataAccess.Client" ----同上
④providerName="System.Data.OleDb" ----说明使用的是Access数据库

providerName可写可不写。

我们什么时候用providerName呢?

比如,我们现在要做一个项目,以后会卖个两个企业使用:A和B。这就有不确定因素了,A使用Oracle,B使用SQLserver。

所以,

①数据库:

      我们需要建两个库,一个用oracle,一个用Sqlserver。

②程序:

        我们一般不去写两个系统让他们使用,我们肯定会去判断,先判断他们使用的是什么数据库,然后再在程序里执行什么样的数据库脚本。

③web.config代码:

 <configuration>
<connectionStrings>
<add name="connStr" connectionString="Data Source=.;Initial Catalog=mydb;Integrated Security=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>

④程序代码:

进行判断,如果providerName="System.Data.SqlClient"则执行SQLServer的脚本,如果providerName="System.Data.OracleClient"则调用Oracle的数据库脚本。

 public static readonly string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ProviderName;
public static string databaseType = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ProviderName;
public static int ExecuteNonQuery(CommandType commandType, string commandText, params System.Data.OleDb.OleDbParameter[] parm)
{
int num = ;
if (databaseType == "System.Data.SqlClient")
{
//此处执行Microsoft SQLServer的数据库脚本
}
else if (databaseType == "System.Data.OracleClient")
{
//此处执行Oracle的数据库脚本
} return num;
}

员文链接:http://www.cnblogs.com/laov/archive/2012/05/11/2495795.html

ASP.NET web.config中的连接字符串的更多相关文章

  1. ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法

    ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...

  2. ASP.Net Web.config 中引用外部config文件

    1. 前提准备: Web.config file: <?xml version="1.0" encoding="utf-8"?><config ...

  3. winform中读取App.config中数据连接字符串

    1.首先要在工程引用中导入System.Configuration.dll文件的引用. 2.通过System.Configuration.ConfigurationManager.Connection ...

  4. ASP.NET,web.config 中SessionState的配置

    web Form 网页是基于HTTP的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息的丢失. 于是, 状态管理就成了 ...

  5. 让LinqToSQL使用Web.Config中的链接字符串(修改Settings.Designer.cs)

    [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.Debug ...

  6. ASP.NET web.config中<customErrors>节点说明

    customErrors>节点用于定义一些自定义错误信息的信息.此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错 ...

  7. (译)利用ASP.NET加密和解密Web.config中连接字符串

    介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...

  8. 利用ASP.NET加密和解密Web.config中连接字符串

    摘自:博客园 介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Se ...

  9. web.config中连接字符串的读写和加密解密

    转载:https://www.cnblogs.com/shuai/articles/2248703.html 1.先来看看如何在web.config中写入数据库连接字符串.打开web.config文件 ...

随机推荐

  1. mysql 用户管理和权限设置

    用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建 mysql> create user ...

  2. 子div设置浮动无法把父div撑开。

    <div class="mainBox"> <div class="leftBox"></div> <div clas ...

  3. [转载]C#深入分析委托与事件

    原文出处: 作者:风尘浪子 原文链接:http://www.cnblogs.com/leslies2/archive/2012/03/22/2389318.html 同类链接:http://www.c ...

  4. 经典的一款jQuery soChange幻灯片

    soChange一款多很经典的幻灯片的jQuery插件. 实例预览 引入文件 <link rel="stylesheet" type="text/css" ...

  5. Android View的滑动 动画

    [scrollTo/scrollBy] //控件内的文字会移动,但是控件本身不会移动,而且移动到控件之外之后,文字也就看不见了 if(v.equals(button2)){ button2.scrol ...

  6. ButterKnife Zelezny从配置到使用

    插件介绍:ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成.又一神器,完美告别 ...

  7. ViewPager与PagerAdapter

    ViewPager是一个可以用来滑动内部View的组件,他有一个老搭档PagerAdapter,我们这次就来看看他们这两位拍档的本事. 我们要使用ViewPager与PagerAdapter结合 首先 ...

  8. 【原】HTTP in iOS你看我就够

    声明:本文是本人 编程小翁 原创,转载请注明. 本文同步发布在简书中,强烈建议移步简书查看,编程小翁 HTTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解 ...

  9. WereWolf项目 Postmortem

    WereWolf项目 Postmortem (博客园的MarkDown编辑器好像有些问题,编号都显示1..) 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...

  10. count(*) 与count (字段名)的区别

    count(*) 查出来的是:结果集的总条数 count(字段名) 查出来的是: 结果集中'字段名'不为空的记录的总条数