ADO.NET | DataDirectory | 这记录在哪里?

pro*_*ice 61 c# ado.net datadirectory

在AppConfig中可以使用, |DataDirectory|但我找不到任何文档?

Ale*_*lex 77

|DataDirectory| 是一个替换字符串,因此您可以单独配置数据库文件的位置.

所以代替:

SqlConnection c = new SqlConnection (
   @"Data Source=.\SQLDB; AttachDbFilename=C:\MyDB\Database.mdf;Initial Catalog=Master");
Run Code Online (Sandbox Code Playgroud)

你做了以下事情:

// Set |DataDirectory| value
AppDomain.CurrentDomain.SetData("DataDirectory", "C:\myDB");

// SQL Connection String with |DataDirectory| substitution string
SqlConnection c = new SqlConnection (
   @"Data Source=.\SQLDB; AttachDbFilename=|DataDirectory|\Database.mdf;Initial Catalog=Master");
Run Code Online (Sandbox Code Playgroud)

  • 这是一些文档(搜索DataDirectory):http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx (2认同)

MRG*_*MRG 15

在MSDN社交论坛中,可以找到这个答案

| DataDirectory目录| (用管道符号括起来)是一个替换字符串,表示数据库的路径.它消除了对完整路径进行硬编码的需要,这导致了几个问题,因为数据库的完整路径可以在不同的地方序列化.DataDirectory还可以轻松共享项目以及部署应用程序.

例如,不要使用以下连接字符串:

"Data Source= c:\program files\MyApp\Mydb.sdf"
Run Code Online (Sandbox Code Playgroud)

使用DataDirectory,您可以拥有以下连接字符串:

“Data Source = |DataDirectory|\Mydb.sdf”
Run Code Online (Sandbox Code Playgroud)

若要设置DataDirectory属性,请调用AppDomain.SetData方法.如果未设置DataDirectory属性,则将应用以下默认规则来访问数据库文件夹:

  • 对于放在用户计算机上的文件夹中的应用程序,数据库文件夹使用应用程序文件夹.
  • 对于在ClickOnce下运行的应用程序,数据库文件夹使用创建的特定数据文件夹.


小智 8

不正确的家伙!| DataDirectory | 指的是您的实例配置的mssql\data目录.

因此,例如我使用Visual Studio 2012与SQL Express连接.| DataDirectory目录| 在我的SQL Express的安装不是我的解决方案App_Data文件夹\ Program Files文件\ Microsoft SQL Server的\ MSSQL10_50.SQLEXPRESS\MSSQL\DATA:将所有MDF文件在C.

另外,文件是在我的web.config指定的名称MVCMovie.Models.MovieDBContext不Movies.mdf.

我想它需要在Visual Studio中的某处配置它被下app_data文件适当地放置.