将项目从usb传输到c:\时的sql异常

时间:2010-03-07 00:15:56

标签: sql exception usb sql-server-express datadirectory

我正在使用Visual Studio 2008开发一个C#windows程序。通常,我在学校工作,直接在我的USB驱动器上工作。但是,当我在家中复制硬盘驱动器上的文件夹时,每当我尝试写入数据库时​​,都无法处理sql异常。它在conn.Open()处理未处理;线。这是未处理的异常

  

数据库'L:\ system \ project \ the_project \ the_project \ bin \ Debug \ PatientMonitoringDatabase.mdf'已经存在。选择其他数据库名称。无法将文件'C:\ Documents and Settings \ Administrator \ My Documents \ system \ project \ the_project \ the_project \ bin \ Debug \ PatientMonitoringDatabase.mdf'作为数据库'PatientMonitoringDatabase'附加。

这很奇怪,因为我的连接字符串显示| DataDirectory |,所以它应该适用于任何驱动器......这是我的连接字符串:

string connStr = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\PatientMonitoringDatabase.mdf; " +
                "Initial Catalog=PatientMonitoringDatabase; " +
                "Integrated Security=True";

3 个答案:

答案 0 :(得分:1)

我认为这里的抱怨是您的本地SQL Server Express安装已经有了 PatientMonitoringDatabase已连接并正在运行。

使用SQL Server Management Studio Express(if not installed, download here)连接到localhost并删除/分离现有的PatientMonitoringDatabase数据库。无论是持久性数据库还是仅在正在运行的应用程序中处于活动状态,您都不能同时将2个具有相同名称的数据库连接到SQL Server实例。

答案 1 :(得分:0)

您获得的第二个异常是因为SQL Server Express实例没有打开数据库文件的权限。该文件的权限是什么,以及在哪个SQL Server下运行?

答案 2 :(得分:0)

问题解决了。那个人很幸运。我通过浏览微软论坛获得了一些提示。提示导致我打开我的“SQL Server配置管理器”,我不得不做一些“SQL Server(SQLEXPRESS)”。所以我双击它,并将“内置帐户”从“网络服务”更改为“本地系统”。现在它起作用....我很幸运,我猜...

但是,您必须分离数据库。所以,对于那个,尼克克拉弗