asp.net2.0中存放的ConnectionString

博客主要探讨数据库连接字符串(connectionString)的存放位置,介绍了web.config中appSetting和connectionStrings两个小节的调用方法及特点。还提及数据库工厂的使用,可创建通用的Connection和Command。此外,说明了找不到ConfigurationManager类的解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#1 connectionString放在什么地方
首先肯定放在web.config里面,原因不多说了
有两个地方
1 appSetting小节?
2 connectionStrings小节?


1 appSetting小节?
调用方法
ConfigurationManager.AppSettings[""].ToString()
这里只是保存了一个字符串,没有其他东西
读取的时候也可以用ConfigurationSettings像asp.net1.1一样,不过MS说这个过时的方法
这是asp.net1.1的做法

2 connectionStrings小节?
调用方法
ConfigurationManager.ConnectionStrings[""].ConnectionString
在这里定义的ConnectionString可以直接被各种数据源控件如SqlDataSource通过如 <%$ ConnectionStrings:Pubs.ProviderName %>调用,显然更强大
它是如何做到的?
这里定义name和字符串的同时,还可以定义Provider
Provide默认一般设置为System.Data.SqlClient,它是个什么东西?
开始以为这个表示System.Data.SqlClient命名空间,感觉语法很奇怪,后来研究半天,这里只不过是一个字符串,利用了命名空间的名称而已,没有任何实际意义,删掉或者该成其他的值都可以,但也不是完全没有用处,在使用数据工厂的时候需要他,这个字符串是一个约定

关于数据库工厂:
一般来说在我们的数据库通用类里面读取web.config里面的参数(比如连接字符串),然后使用SqlConnection SqlCommand等操作,这样很明显需要为每种不同的数据库编写不同的程序,PetShop里面就是这么实现的,它分别实现了SqlHelper和OracleHelpe人两个类,为了适应这两个数据库访问类,还分别实现了不同的dal层,这其实不是很好的解决办法(asp.net1.1沿用下来的),asp.net2.0还有更简单的方法,就是使用数据库工厂

首先要创建一个工厂,这个工厂之后会负责创建需要的Connection Command等
DbProviderFactory dbFactory = DbProviderFactories.GetFactory(“”); 需要传入一个字符串,就是ProvideName的东西了,比如System.Data.SqlClient
这里就可以这么写:
        private static DbProviderFactory dbFactory = DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ProviderName);  //用到ProviderName了

        public static void ttt1()
        {
            DbConnection conn = dbFactory.CreateConnection();
            DbCommand cmd = dbFactory.CreateCommand();
        }
这样得到的conn cmd就是通用的了,加入上面定义的是System.Data.SqlClient,其实这里就得到SqlConnection和SqlCommand


关于找不到ConfigurationManager的错误
有时候会死活找不到ConfigurationManager类,这是因为asp.net2.0中有好几个System.Configuration类...汗,因为有的是兼容1.1的,所以会这样,比如新建了一个项目,需要手动添加应用System.Configuration.dll,然后才能用到ConfigurationManager,否则系统默认使用asp.net1.1的东西

为了使用asp.net2.0的强大功能.....我把ConnectionStrings都放在这里

转载于:https://www.cnblogs.com/yayx/archive/2007/06/04/770489.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值