数据库连接字符串中的“|DataDirectory|”是什么?
asp.net 2.0有一个特殊目录app_data,通常Sql server 2005 express数据文件就放在这个目录,相应的数据库连接串就是:
connectionString="…… data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User Instance=true"
这里有一个DataDirectory的宏,他表示什么意义呢?
DataDirectory 是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署。例如,无需使用以下连接字符串:
"Data Source= c:\program files\MyApp\app_data\Mydb.mdf"
通过使用 |DataDirectory|(包含在如下所示的竖线中),即可具有以下连接字符串:
"Data Source = |DataDirectory|\Mydb.mdf"
这里的一篇文章Working with local databases详细的解释了DataDirectory 的意义,不仅仅是Sql server 2005 express中使用,也可以在其他的文件数据库中使用,例如Sqllite数据库文件的连接字符串:
<add name="DefaultDB"
connectionString="DriverClass=NHibernate.Driver.SQLite20Driver;Dialect=NHibernate.Dialect.SQLiteDialect;Data Source=|DataDirectory|\data.db3" />
另外
<appSettings>
<!--数据库连接-->
<add key="DataConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data source=|DataDirectory|Data.mdb"/>
</appSettings>
<!-- 连接字符串, 当前配置为使用SQL Express-->
<connectionStrings>
<remove name="SQLConnectionString"/>
<add name="SQLConnectionString" connectionString="Data Source=.\SQLExpress;integrated security=true;attachdbfilename=|DataDirectory|SmallCompanyDB.mdf;user instance=true"/>
</connectionStrings>