对于 asp.net mvc Web 应用程序,将文本文件存储到 Sql Server 数据库中的最佳方法是啥?

Posted

技术标签:

【中文标题】对于 asp.net mvc Web 应用程序,将文本文件存储到 Sql Server 数据库中的最佳方法是啥?【英文标题】:Which is the best way to store text files into a Sql Server data base, for an asp.net mvc web application?对于 asp.net mvc Web 应用程序,将文本文件存储到 Sql Server 数据库中的最佳方法是什么? 【发布时间】:2010-12-03 17:55:10 【问题描述】:

我正在制作一个小的 asp.net mvc 应用程序。我必须从几个计算数据 CSV 文件(5 到 10 个文件)。

应用程序必须为这些文件提供上传和下载操作。

我没有经验的部分是数据库。我应该使用什么列类型?文本、图像、二进制?文件大小在 80KB 到 500KB 之间

【问题讨论】:

您实际上是在尝试将整个文件作为实体存储在数据库中,还是只是想将 csv 文件中的数据上传到表中? 我想将文件存储为实体。 【参考方案1】:

TEXTNTEXTIMAGE 类型已过时 - 不要将它们用于新开发。它们将从未来的 SQL Server 版本中永久删除。

对于 SQL Server 2005 及更高版本,如果您正在处理纯文本文件(如源代码或 CSV 文件),请使用 VARCHAR(MAX) / NVARCHAR(MAX),如果您正在处理二进制文件,请使用 VARBINARY(MAX)

每个文件最多允许 2 GB 的存储空间,您可以在它们上使用所有常用的 T-SQL 字符串函数来操作它们(即 (N)VARCHAR(MAX) 字段)。

如果您使用的是 SQL Server 2008,还有一个附加选项 - FILESTREAM 列上的 FILESTREAM 属性。这允许您将文件存储在 SQL Server 计算机的文件系统(而不是数据库表)中,同时保持事务和数据的完整性。

FILESTREAM 建议用于通常大小超过 1 MB 的文件,或者如果您需要超过 2 GB 的文件(因为您不能在常规 VARBINARY(MAX) 列中存储超过 2 GB 的空间)。

马克

【讨论】:

为了完整起见,也没有限制 FILESTREAM 类型。 谢谢大家!解决了,我想我会使用 FILESTREAM。

以上是关于对于 asp.net mvc Web 应用程序,将文本文件存储到 Sql Server 数据库中的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用成员资格提供程序的 ASP.NET MVC 4 Web API 身份验证

将 ASP.NET Razor 网站(例如 MiniBlog)集成为 ASP.NET MVC Web 应用程序的模块?

asp.net mvc框架优缺点

在ASP.NET MVC项目中使用React

实时 ASP.NET MVC Web 应用程序

AngularJS + ASP.NET Web API + ASP.NET MVC 身份验证