我正在尝试创建一个启用了文件流选项的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端。在这一点上,我不知道它为什么会失败。