在启用了文件流的情况下通过C#创建SQL Server数据库失败

时间:2018-01-22 15:51:48

标签: c# sql-server

我正在尝试创建一个启用了文件流选项的SQL Server数据库。

    public void CreateDatabase()
    {
        if (!CheckDatabaseExists())
        {
            if (!Directory.Exists("c:\\databackup"))
            {
                Directory.CreateDirectory("c:\\databackup");
            }

            var filePath = Path.Combine(jsonParser.FilestreamDataPath, "c:\\databackup\\backup");
            var primaryPath = Path.Combine(jsonParser.FilestreamDataPath, $"c:\\databackup\\backup.mdf");

            var createDataBase = $@" CREATE DATABASE backup ON PRIMARY
                                        (NAME = backup_Primary, FILENAME = '{primaryPath}'),
                                        FILEGROUP backup_FileStreamGroup
                                        CONTAINS FILESTREAM(NAME = backup_Filestream,
                                        FILENAME = '{filePath}')";

            using (SqlConnection connection = new SqlConnection("Integrated Security=false; User Id=backup; Password=backup; Server=190.168.20.84"))
            {
                try
                {
                    connection.Open();

                    using (SqlCommand command = new SqlCommand(createDataBase, connection))
                    {
                        command.ExecuteNonQuery();
                    }
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
            }
        }
    }

我得到了这个例外:

  

文件“C:\ databackup \ backup.mdf”的目录查找失败,并显示操作系统错误2(系统找不到指定的文件。)。 CREATE DATABASE失败。无法创建列出的某些文件名。检查相关错误。

但是相同的代码在没有任何错误的情况下工作了一段时间。但突然间我收到了这个错误。此代码的工作要求是路径C:\databackup\必须存在于SQL Server端。在这一点上,我不知道它为什么会失败。

0 个答案:

没有答案