我编写了一个小应用程序,可以恢复数据库(C#和SQL2005),但在我访问数据库后,我不能删除它 - 它说它正在使用中.. 我想这与SQLconnection-pooling有关,但是我可以强制它重新启动数据库吗?
答案 0 :(得分:1)
在连接字符串中指定“Pooling = False”。
答案 1 :(得分:1)
处理您的SqlConnection对象。
答案 2 :(得分:0)
如果你使用
Using SQLConnection
'' do your stuff here
End Using
我认为这会在退出后强制释放资源
答案 3 :(得分:0)
调用“USE SomeOtherDB”(例如Master)关闭您自己的连接,或者
之一ALTER DATABASE SET SINGLE_USER
或
ALTER DATABASE使用ROLLBACK_IMMEDIATE设置SINGLE_USER
关闭其他连接。第一个等待连接结束,第二个是立即。
答案 4 :(得分:0)
“呼叫”使用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();
}