阅读 211

ASP.NET中使用Access数据库的困惑

这几天在做ASP.NET网站,后台数据库就用轻便的Access作数据库。我发现Access虽然相对MSSQL简单小巧,不用那么多的设置,但它也不轻松。如果你对它执行SQL语句的操作,万一表名或者字段名使用了它的关键字,那么就会抛出异常,而这些关键字在MSSQL中是很正常的。有时候这会让你苦不堪言。



Access作数据库的一个好处就是它可以随意携带而且不用像MSSQL一样还要附加和配置。但它的优势也是它的劣势,Access作为一种文件如果泄漏了它的地址则很容易就被下载下来,这样网站安全性就无从谈起。



在ASP.NET中使用Access数据库其中最让人郁闷的就是数据库地址的指定。在桌面程序中,我们只需要用System.Windows.Forms.Application.StartupPath加数据库相对地址就可以了,而在WEB程序中将是另外一种光景。当然,我们也可以System.Web.HttpContext.Current.Server.MapPath这个Web服务器上指定虚拟路径相应的物理文件路径。但这个东东在Internet信息服务里面变得会很异常。也就是说你在VS2008里面调试的或者在浏览器里面进行调试都没有问题,但到Internet信息服务里面直接浏览网站就会报错,可能这个跟Web服务器网站和虚拟路径不太一样。



一旦你的网站发布了,那么所有的代码文件将被转换为DLL直接存放在bin文件夹里,如果你的数据库存放在网站根目录下的Data文件夹下,那么你要在浏览器中可用就必须这样指定地址:System.Web.HttpContext.Current.Server.MapPath("~\\Data\\Data.mdb"),也就是前面加个“~”。难道说我们所要用到的网站主目录是Bin文件夹?



而无论你怎么变,在Internet信息服务里面都是运行不了的…搞笑的是在VS2008里面调试的时候却都能适用,即使你把“~”忘记了。



有谁能告诉为什么呢?我想,我应该去百度一下…



©著作权归作者所有:来自51CTO博客作者梦心的原创作品,如需转载,请注明出处,否则将追究法律责任


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐