如何使用c#windows窗体上传文件?

时间:2011-09-05 17:43:08

标签: c# sql-server database winforms database-design

我创建了一个脚本,用于上传文件并将其作为二进制数据保存到SQL数据库中。将它们上传到服务器上的文件夹并在数据库中只保存它们的链接是否更好?

如果是,我该怎么做?

2 个答案:

答案 0 :(得分:1)

这取决于您希望上传到服务器的文件大小,以及这些文件的数量以及从服务器请求图像数据的频率。

如果您的文件足够小,那么将它们存储在数据库中将允许您使用内置的SQL Server数据完整性机制。您的数据库备份将自动与图像数据同步。但是,大文件会使您的数据库“沉重”。

如果您选择在DB中存储文件,那么最好为图像创建专用表。将图像存储在单独的表中的好处是,只有在必要时才会对此专用表发出请求(例如,当用户请求创建图像作者和时间图像时,DB服务器将使用带有图像元数据的轻量级表)。另一个好处是某些数据库(MS SQL)允许将表放在不同的磁盘上,因此您可以将这个繁重的表放在单独的磁盘上。

如果您选择仅存储图像文件的链接,那么您需要自己实现数据完整性。进行数据库备份时,您需要备份映像。您需要确保DB中没有指向不存在的文件的链接,并且没有DB中没有链接的文件等。此选项使您的数据库轻量级,但需要额外的编码和维护。

答案 1 :(得分:0)

是的,正如我想的那样。 这篇文章可能很有用http://www.shabdar.org/sql-server/105-store-save-images-in-sql-server.html