|
数据库连接字符串的处理应该是一个项目里最基础的东东了。(除非你的项目不涉及到数据库。)
千万不要小看他,处理不好也时会给你带来不少的麻烦的。
连接字符串的内容在这里就不讨论了,这里主要说一下他的存放位置和读取方法。
我们要达到的目的:无论连接字符串如何变化,都不需要修改项目!
1.把连接字符串写在程序里面。
一般的初级教程里会告诉你这么写
VB.net
Dim cn As New SqlClient.SqlConnection("user id=sa;password=sa;server=.;initial catalog=数据库名称") C#
SqlClient.SqlConnection cn = new SqlClient.SqlConnection("user id=sa;password=sa;server=.;initial catalog=数据库名称") 这么写当然是没有错误,但是当你写了n个页面后,有一半的页面有这样的代码,这时候如果需要改变连接字符串(比如换用户名和密码)的话,那可就有得你改的了。想当初我就犯过这样的错误,555555
2.放在web.config里面
这是比较流行的方法了。修改web.config文件,加入以下代码
<APPSETTINGS> <ADD value="user id=sa;password=sa;server=.;initial catalog=数据库名称" key="connString" /> </APPSETTINGS> 然后在需要的地方调用就可以了。
VB.net
Dim cnString As String = System.Configuration.ConfigurationSettings.AppSettings.Item("connString") C#
string cnString = System.Configuration.ConfigurationSettings.AppSettings["connString"] 这样呢就不怕连接字符串再发生变化了。如果有变化的话,修改web.config就行了。
缺点就是web.congfig 是文本形式的,虽然不能下载,但还是缺乏安全感。
3.放在注册表里面
事先把连接字符串放在注册表里面,用的时候到注册表里面取值。
优点:安全性高。要想看到注册表里的信息不是很容易的事情吧。
缺点:读取注册表需要一定的权限,但是一般的空间是不会开放这个权限的,因为开放了就意味着可以操作注册表,这对服务器就太不安全了。
4.放在DLL文件里面
写一个单独的类,再写一个函数,调用这个函数返回连接字符串。然后把它编译成DLL文件备用
using System; namespace JYK { /**//// <summary> /// 取得连接字符串。 /// </summary> public class Connection { public static string ConnectionString() { return "user id=sa;password=sa;server=.;initial catalog=数据库名称"; } } } 直接打开 DLL文件 看到的是乱码,要比写在web.config有安全感。当然了通过反编译软件还是可以看到里面的代码。
还有就是修改起来不太方便,需要重新编译一下这个类。
5.综合
以上个四种方法各有优越缺点,用哪一个都不是最好的,另外还有一个问题没有提及 —— 加密连接字符串。
那么在一个项目里,怎么做才是最好的方法呢? —— 分层。
项目 <——类(DLL文件) <——存放连接字符串的位置
上一篇:用Asp.net屏蔽F5、Ctrl+N、Alt+F4
下一篇:ADO.NET 的最佳实践技巧
|