网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.Net2.0中自定义控件在page中.
.创建完全可编辑的 DataGrid.
.页面中包括DataGrid时,利用webc.
.ASP.NET 2.0程序安全的基础知识.
.ASP.NET2.0下含有DropDownList的.
.ASP.NET应用程序中调用EJB.
.讲解用.NET编写串口程序的一点心.
.ASP.Net全局变量的设置和读取方法.
.asp.net2.0 上传图片并为用户创建.
.在ASP.Net中应用Javascript.
.扩展 IronPython for ASP.NET:编.
.ASP.NET中前台javascript与后台代.
.ASP.NET下MVC设计模式的实现.
..netFramework1.1下创建文件几种.
.学习使用ASP.NET 2.0的本地化.
.通过预处理器指令调整连接的数据.
.使用WebClient自动填写并提交ASP.
.ASP.NET2.0:Ilungasoft.Framewor.
.同时对多个文件进行大量写操作对.
.asp.net2.0中异步调用WebService.

Access数据库在asp.net程序中相对路径的解决方法

发表日期:2006-11-23


好多朋友被ACCESS数据库在.net程序中相对路径的问题困扰,搞得每次移动程序都要去修改web.config
中数据库连接字符串的数据库路径。

好多人的web.config中的写法如下:


 

<appSettings>
<add key="OLEDBCONNECTIONSTRING" value="Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=E:\web\App_Data\Data.mdb)"></add>
</appSettings>


程序中这样写:


 

MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]);//注释一下:VS2005和VS2003中的ConfigurationSettings写法不一样,具体区别自己查吧

这样程序运行时经常提示诸如以下的错误:
'C:\WINDOWS\system32\~\App_Data\Data.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 Data Source=~\App_Data\Data.mdb
就算用绝对路径正确,那么移植程序时还要去修改web.config,所以比较麻烦。

也有在web.config中使用象ASP那样的Server.MapPath取数据库路径的,但web.config不认识Server.MapPath,此方法也行不通。

后来通过摸索、参考其它程序,总结出如下方法,可以方便的移植程序路径而不必再去修改ACCESS数据库路径。

我在web.config中的写法如下:

<appSettings>
<add key="SQLConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="~/App_Data/mydata.mdb"/>
</appSettings>
程序中的数据访问类中我把"SQLConnString"和"dbPath"取出来连接成一个字符串"CONN_STRING_NON_DTC"
public static readonly string CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
这是VS2005中的写法
我把CONN_STRING_NON_DTC定义成static readonly是为了使用方便。
好了,这样就可以随便移植你的程序而不用关心数据库的路径了,一劳永逸啊^_^,适合我这样的懒人!

http://www.cnblogs.com/wjj/archive/2006/11/22/568265.html

上一篇:Object/DataSet Relational Mapping(对象/数据集关系映射) 人气:4218
下一篇:ASP.NET 2.0高级数据处理之处理Null值 人气:4142
浏览全部asp.net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐