1

我在 ASP.NET 解决方案上有一个连接字符串...

Data Source=.\SQLEXPRESS;AttachDbFilename="F:\Prueba Documento Digital\Prueba Documento Digital\App_Data\BaseDeDatos.mdf";Integrated Security=True;User Instance=True

您可能会注意到它指定了一个确切的路线,因为它位于我的 USB 闪存驱动器上,但是如果我将我的解决方案移动到另一个地方会发生什么(Prueba Documento Digital 是解决方案的名称)?

我正在尝试类似 ~/App_Data... 但它没有用... 可以做什么?

4

4 回答 4

3

您可以将数据库放在 App_Data 文件夹中并通过 DataDirectory 访问它

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BaseDeDatos.mdf;Integrated Security=True;User Instance=True

默认情况下,asp.net 将在看到 DataDirectory 指令时检查 App_Data 文件夹(除非您通过调用更改 DataDirectory AppDomain.SetData

于 2013-01-28T03:34:54.140 回答
2
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BaseDeDatos.mdf;Integrated Security=True;User Instance=True
于 2013-01-28T03:37:44.763 回答
1

很简单,提供服务器地址,并在其中访问您的数据目录并提及数据库文件名。将您的数据库文件放在App_Data文件夹中

Data Source=.\SQLEXPRESS;AttachDbFilename=|dataDirectory|\BaseDeDatos.mdf;Integrated Security=True;User Instance=True.

在此代码中,AttachDbFilename搜索名为的数据库文件BaseDeDatos.mdf

于 2013-01-28T03:37:45.463 回答
1

首先停止使用该AttachDbFileName属性和已弃用的用户实例功能。您真的想在每次启动应用程序时创建数据库的新副本吗?

相反,直接在实际的 Express 实例上创建数据库,使用CREATE DATABASE BaseDeDatos ... FOR ATTACH .... 然后您的应用程序将始终引用您的数据库的正确副本(我强烈建议不要在 USB 闪存驱动器上移动您的 .mdf 文件 - 如果您想要便携式开发,请使用 Azure 或其他东西):

Data Source=.\SQLEXPRESS;Initial Catalog=BaseDeDatos;Integrated Security=True;
于 2013-01-28T04:19:04.657 回答