如何在C#代码

时间:2018-01-06 12:25:17

标签: c# sql-server

我正在使用SQL Server 2012和2016以及VS 2015来确定数据库是否已存在。如果数据库存在,此代码可以正常工作。但是当没有找到数据库时,它会挂起几秒钟,然后进入catch块。它打印出一个错误:

  

无法打开数据库\" ma14 \"登录请求。登录失败。\ r \ n登录失败的用户' Home \ mim'。

我的代码:

public bool CheckDatabaseExists()
{
    string cmdText = $"select * from sys.Databases where Name = '{dataBaseName}'";

    bool databaseExist = false;

    using (SqlConnection sqlConnection = new SqlConnection(connectionString))
    {
        try
        {
            sqlConnection.Open();

            using (SqlCommand command = new SqlCommand(cmdText, sqlConnection))
            {
                var result = command.ExecuteScalar();

                if (result == null)
                {
                    Console.WriteLine("database not found");
                    databaseExist = false;
                }
                else
                {
                    Console.WriteLine("database exists");
                    databaseExist = true;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

    return databaseExist;
}

我发现很少有人问过同样的问题。但答案对我不起作用。或者它做同样的行为。就像等待几秒钟并抛出异常一样。

如何在不等待更长时间的情况下以更好的方式做到这一点?

0 个答案:

没有答案