c#应用程序连接到数据库 - 无法分离

时间:2017-09-19 08:28:15

标签: c# sql-server winforms detach

当我使用C#创建新数据库并创建表时,我可以关闭并打开它的连接。如果我尝试在我的应用程序的同一会话中分离数据库,它告诉我,我不能。 如果我重新启动应用程序,然后打开数据库,然后关闭并分离 - 它可以工作。 为什么会发生这种情况,我该如何解决?

P.S。我尝试使用SET OFFLINE WITH ROLLBACK IMMEDIATE,但是可以更改我的数据库权限,而且我真的不想要这个。

我的连接字符串:

myConn.ConnectionString = String.Format("Server={0};Integrated security=SSPI;", serverName);

我的分离字符串:

str = string.Format("EXEC sp_detach_db '{0}'", databaseName);

2 个答案:

答案 0 :(得分:1)

您好朋友在使用:" Microsoft.SqlServer.Management.Smo;" ?
如果,则使用它来分离数据库

Server MyServer = new Server("your server name"); MyServer .DetachDatabase("name of database",true);


如果,请指明您的问题

答案 1 :(得分:0)

您无法分离正在使用的数据库 因此,如果您连接到要分离的同一数据库,则首先切换到数据库主数据库。

str = string.Format("use master GO EXEC sp_detach_db '{0}'", databaseName);