小编Vee*_*ond的帖子

SqlConnection/SqlCommand 在关闭和处置后保持数据库在使用中

我正在尝试创建一个临时数据库以在 Xunit 中进行集成测试,但是当我尝试删除临时数据库时,出现错误:

无法删除数据库“TempDatabase_[numbers]”,因为它当前正在使用中。

简单地关闭和处理命令和连接似乎并不能切断它。

这是我失败的测试的精简版:

using System;
using System.Data.SqlClient;
using Xunit;

namespace Test
{
    public class Test_Raw_Spec
    {
        [Fact]
        public void PerformWorkInTemporaryDatabase()
        {
            string connectionStringTemplate = "Data Source=SQLEXPRESS;Initial Catalog={0};Integrated Security=SSPI;Connection Timeout=10";
            int dbNum = (new Random()).Next() % 1000000;
            int tblNum = (new Random()).Next() % 1000000;

            string nameTempDb = $"TempDatabase_{dbNum}";
            string nameTempTable = $"TempTable_{tblNum}";

            var sqlConnection1 = new SqlConnection(string.Format(connectionStringTemplate, "master"));
            var sqlCommand1 = new SqlCommand($"CREATE DATABASE {nameTempDb}", sqlConnection1);
            sqlConnection1.Open();
            sqlCommand1.ExecuteNonQuery();
            sqlCommand1.Dispose();
            sqlConnection1.Close();
            sqlConnection1.Dispose();

            var sqlConnection2 = new SqlConnection(string.Format(connectionStringTemplate, nameTempDb));
            var …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server sqlcommand sqlconnection

3
推荐指数
1
解决办法
84
查看次数

标签 统计

.net ×1

c# ×1

sql-server ×1

sqlcommand ×1

sqlconnection ×1