对于 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】:TEXT
、NTEXT
和 IMAGE
类型已过时 - 不要将它们用于新开发。它们将从未来的 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 身份验证