在SQL Server中保存文件和图像

问题描述 投票:1回答:1

我使用以下代码将word文件和图像保存为SQL Server中的varbinary类型:

文件:

byte[] data = null;

FileInfo fInfo = new FileInfo(newfile);
long numBytes = fInfo.Length;

FileStream fStream = new FileStream(newfile, FileMode.Open, FileAccess.ReadWrite);

BinaryReader br = new BinaryReader(fStream);
data = br.ReadBytes((int)numBytes);

return data;

和图像:

using (MemoryStream ms = new MemoryStream())
{
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
}

但是他们在表中使用了大量的数据库,因此数据库的备份文件很大。

如何以低音量保存它们我能做些什么?

c# sql-server database windows-applications
1个回答
1
投票

您可以将二进制文件存储在服务器上的文件夹中,但这次您可能会遇到备份和还原操作以及同步数据库文件数据和数据文件夹文件的问题。

在数据库中存储数据管理并消除这些复杂性即使使用SQL Server 2012,我们也有一个表类型,FileTable您可以尝试使用SQL Server的FileStream功能,并通过简单的复制粘贴或删除操作来更轻松地管理文件事务。因此,就像将文件保存到服务器上的文件夹一样,您可以直接将文件数据插入到FileTable中。当然,您的数据库大小再次增加,但这更方便。

© www.soinside.com 2019 - 2024. All rights reserved.