我编写了一个小应用程序,可以恢复数据库(C# 和 SQL2005),但是在我访问数据库后,我无法删除它 - 它说它正在使用中。我想这与SQLconnection-pooling,但我可以强制它释放数据库吗?
Claudi
问问题
1410 次
5 回答
2
在连接字符串中指定“Pooling=False”。
于 2009-03-24T12:39:31.663 回答
1
释放您的 SqlConnection 对象。
于 2009-03-24T13:09:37.783 回答
0
如果你利用
Using SQLConnection
'' do your stuff here
End Using
我认为这会在它退出后强制释放资源
于 2009-03-24T12:42:10.783 回答
0
调用“USE SomeOtherDB”(例如 Master)来关闭您自己的连接,或其中之一
ALTER DATABASE SET SINGLE_USER
或者
ALTER DATABASE SET SINGLE_USER WITH ROLLBACK_IMMEDIATE
关闭其他连接。第一个等待连接结束,第二个是立即的。
于 2009-03-24T12:44:04.647 回答
0
“调用“USE SomeOtherDB”(例如 Master)来关闭您自己的连接,或其中之一“
//on master ... CREATE
using (var cnn = new SqlConnection(MASTER))
{
cnn.Open();
var createDbCmd = new SqlCommand(string.Format("create database [{0}]", db), cnn).ExecuteNonQuery();
cnn.Close();
}
using (var cnn = new SqlConnection(tempDB))
{
cnn.Open();
var createTbl = new SqlCommand(string.Format("create table t (t int )"), cnn).ExecuteNonQuery();
var dropTbl = new SqlCommand(string.Format("drop table t"), cnn).ExecuteNonQuery();
//Do additional stuf
var userMaster = new SqlCommand(string.Format("use master"), cnn).ExecuteNonQuery();
cnn.Close();
}
//on master ... CREATE
using (var cnn = new SqlConnection(MASTER))
{
cnn.Open();
var dropDbCmd = new SqlCommand(string.Format("drop database [{0}]", db), cnn).ExecuteNonQuery();
cnn.Close();
}
于 2013-06-16T01:25:23.597 回答