我正在尝试创建一个数据库,对其运行一些测试,然后删除数据库:
namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
const string testConnectionString = @"Server=localhost\SQL2014EXPRESS64; Database=RepoTest; Trusted_Connection=True;";
const string masterConnectionString = @"Server=localhost\SQL2014EXPRESS64; Database=master; Trusted_Connection=True;";
// connect to master and create RepoTest db
using (var connection = new SqlConnection(masterConnectionString))
using (var command = new SqlCommand("CREATE DATABASE RepoTest", connection))
{
connection.Open();
command.ExecuteNonQuery();
}
// connect to RepoTest and create some new tables
using (var connection = new SqlConnection(testConnectionString))
using (var command = new SqlCommand("CREATE TABLE Test(ID INT NOT NULL)", connection))
{
connection.Open();
command.ExecuteNonQuery();
}
// connect to master and delete RepoTest db
using (var connection = new SqlConnection(masterConnectionString))
using (var command = new SqlCommand("DROP DATABASE RepoTest", connection))
{
connection.Open();
command.ExecuteNonQuery();
}
}
}
}
但是在尝试删除测试数据库时我得到了这个例外:
System.Data.dll中发生未处理的“System.Data.SqlClient.SqlException”类型异常
附加信息:无法删除数据库“RepoTest”,因为它当前正在使用中。
但我希望它不再被使用,因为使用该数据库的部分在一个使用块中,所以我希望关闭连接并完成操作,如果不是这样的话我可以用它来完成当前进程时删除数据库吗?
答案 0 :(得分:0)
使用testConnectionString的连接对象将使用池
通过添加Pooling=false
:
const string testConnectionString = @"Server=.; Database=RepoTest; Trusted_Connection=True;Pooling=false;";