MDB文件位置中的变量
MDB文件保存在硬盘中的各种物理位置上:与Web页相同的文件夹、Web页下的子文件夹或者机器中的其他文件夹等。在Visual Web Developer中,可以在设计器中经常浏览这些文件,并且MDB文件的正确路径也已经输入好了。但是,如果您打算输入自己代码的话,还需要遵循本节所介绍的语法。
AccessDataSource控件的DataFile属性包含的页面路径可以是完全限定的(例如以
驱动器盘符开头)也可以是相对于包含AccessDataSource的页面的位置而指定的。路径还可以是相对于应用程序的,即使用URL语法来引用路径。这个语法将符号(~)替换为应用程序根目录,比如:~\App_Data\produces.mdb。使用相对于应用程序的路径可以更加容易地将页面从一个位置移动到另外一个位置而不破坏对数据库的引用,所以推荐在可能的时候都使用相对于应用程序的路径。
首先,我们来看完全限定路径的语法,它包含了MDB文件的整个路径,以文件所在的计算机驱动器的根目录开头:
<asp:accessdatasource . . .
datafile= "C:\WebSites\WebApplication\App_Data\MyMdb.mdb"> |
虽然这个语法可以使用,但是它的不足之处就是降低了应用程序的可移植性。如果要移动这个应用程序至另外一台机器上,那么驱动器或者文件的完全限定路径就会不一样,而且在每次移动页面的时候,您都需要修改DataFile属性。
对完全限定路径的一个改进就是使用相对路径语法,它只需要指定与包含了AccessDataSource的页面的完全限定路径不相同的部分。下面是与页面相同文件夹中数据库文件的路径语法,以相对路径指定:
<asp:accessdatasource . . . datafile="MyMdb.mdb"> |
因为页面和MDB文件同处一个目录,所以这些文件的路径没有区别;因此,只需要指定各自的文件名即可。如果MDB处于该文件夹的下一级或更多级目录中,那么下面的语法与前面的非常类似。在这样的情况下,只需要指定子文件夹名称,再添加斜杠和MDF文件名:
<asp:accessdatasource . . . datafile="MyDaughterFolder/MyMdb.mdb"> |
如果MDB文件处于页面目录的上级目录中,那么也可以使用双句点语法来指定当前位置的上一级目录:
<asp:accessdatasource . . . datafile="../MyMdb.mdb"> |
通过使用相对路径语法,可以很容易地将应用程序从一个地方移动至另外一个地方而不用改变MDB文件的路径。因为页面和MDB文件总是形影不离(假如MDB文件是应用程序的一部分),所以这些文件的相对位置总是保存一致。但是,当打算在应用程序内部移动路径,例如将页面移动至子目录中,那将会发生什么呢?在这样的情况下,页面和MDB文件之间的相对位置发生了改变,那么相对路径语法也就不正确了。
应用程序相对语法解决了这个问题。此时,路径总是相对于应用程序根目录来指定的,而不是相对于页面本身。根目录表示为符号(~):
<asp:accessdatasource . . . datafile="~App_Data/MyMdb.mdb> |
现在可以容易地移动应用程序、或者在应用程序内移动页面而不用改变对数据库的引用了。所以,应当在可能的时候都使用应用程序相对路径。
查看本文来源