web.config中的连接字符串 ---关于 providerName 特性
关于这个问题,在网上找到的资料很少,也没有发现具体解决的方式:
先做一下笔记,等有什么新突破时,在补充:
两种方式为appSettings和connectionStrings
- <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:
①它是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 = 0;
- if (databaseType == "System.Data.SqlClient")
- {
- //此处执行Microsoft SQLServer的数据库脚本
- }
- else if (databaseType == "System.Data.OracleClient")
- {
- //此处执行Oracle的数据库脚本
- }
- return num;
- }
---》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
数据库连接层的 app.config 中的<add>练级,复制到web.config中 ok
我解决的方式:
数据库连接层的 app.config 中的<add>练级,复制到web.config中
web.config中的连接字符串 ---关于 providerName 特性相关推荐
- C# web.config中的连接字符串中关于 providerName 特性
关于这个问题,在网上找到的资料很少,也没有发现具体解决的方式: 先做一下笔记,等有什么新突破时,在补充: 两种方式为appSettings和connectionStrings <configur ...
- web.config 中connectionStrings连接字符串加密、解密问题
注意:是对虚拟目录下还是物理目录下的文件加密 加密网站中的配置信息,我们不需要写任何代码,也不需要修改任何代码,只需要使用 aspnet_regiis 工具修改配置文件即可.比如我们有下面一个配置文件 ...
- ORM读取web.config中的数据库连接字符串
使用VS2008自带LINQ TO SQL生成的ORM默认连接字符串内置在类中,一旦数据库连接改动需要重新编译ORM. 其实可以通过一个简单的方法实现动态读取. 一.因为要读取WEB配置文件,所以第一 ...
- ASP在 Web.config 中创建数据库连接字符串
在 Web.config 中创建数据库连接串 我们需要在网站的配置文件中增加一些行,以便 Entity Framework 知道如何连接到我们的数据库,双击Web.config 文件. 卷到文件的最后 ...
- web.config中connectionStrings数据库连接字符串介绍
web.config中connectionStrings中connectionString各属性字段的介绍 Application Name 应用程序的名称,如果不提供应用程序名称,默认为" ...
- asp.net 2.0 中引用Web.config内的连接字符串的方法
Web.config内容:<appSettings> //<add key="SocutDataLink" value="路径"/&g ...
- C# .net web.config配置access连接字符串
Web.config文件中设置数据库连接字段时如下: <appSettings> <add key="AccessConnString" value=" ...
- (译)利用ASP.NET加密和解密Web.config中连接字符串
介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...
- linq to sql中修改连接字符串
如果在类库中在添加linq to sql并连接完数据库服务器后会自动生成settings.settings文件,app.config文件用于存储连接字符串(图一) 如要修改连接字符串要修改哪个还是要全 ...
最新文章
- 蛋白Ramachandran(拉氏图、拉曼图)的绘制和可视化
- sql,EXISTS用法
- 通过MATLAB读取mnist数据库
- Python 运行时常见错误汇总
- 悟透delphi 第十章 操作界面与操作逻辑
- [精品]CSAPP Bomb Lab 解题报告(一)
- java 中linux命令参数说明,java中linux命令参数说明
- Physics-based Animation 相关
- 【bzoj 3131】[Sdoi2013]淘金
- Hi3519av100 uboot代码编译
- 简单工厂模式、工厂模式、抽象工厂模式
- Javascript中Math常用操作,向上取整、向下取整、四舍五入
- 9. 成功解决:Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found
- python内置函数之len()方法
- 电动车充电软件测试,电动车充电分为哪几个过程
- 做期货能不能尽量不止损?
- 财务会计英文简历范文
- DES和RSA混合加密解密
- UG NX 12 基准平面
- 多层矩形线圈电感计算公式
热门文章
- CODE[VS] 1068 乌龟棋
- OpenGL如何将像素点的窗口空间坐标转换为世界坐标?
- ue4使用houdini制作FBX破碎动画 houdini游戏工具(二)
- mysql config type_请检查DNT.config中的DbType节点数据库类型是否正确例如:SqlServer的访问MYSQL...
- 教你利用Python爬虫轻松挣外快
- 利用ubint安装Linux到u盘,Ubuntu12.04安装到U盘里
- LinkedIn首席科学家:创业公司如何善用数据,加入下一个千亿美元市场?
- 高效团队建设和团队领导二
- [usaco2010_mar_silver]极品飞车
- python 基于pillow模块生成随机图片验证码教程