0

我需要一个代码来使用 C# 将(最终很大的)文件存储到 DB 中。

我正在使用的解决方案是这样的:(我在数据库中使用 varbinary(MAX) 列)

1)创建SqlCommand

2)创建SqlParameter

3) 设置 parameter.Value = File.ReadAllBytes(filePath)

4)执行SqlCommand

有没有更有效的解决方案?由于文件可能很大,所以当将所有字节读入内存,然后将它们存储到数据库中时,我担心性能问题。

先感谢您

4

2 回答 2

4

我现在面临同样的问题。有一种方法可以顺序写入 varbinary 字段。请参阅这篇文章:“通过 ASP.NET MVC 从 SQL Server 下载和上传图像” http://www.codeproject.com/KB/aspnet/streamingblobhttp.aspx

它显示了一种使用命令的方法,例如:

UPDATE <table> SET <field>.WRITE(@data, null, null) WHERE ...

这允许将数据块写入您的列,而无需读取整个文件。

于 2012-01-06T15:28:54.073 回答
1

你所拥有的就是你能用一个varbinary(MAX)专栏得到的最好的东西。虽然您可以将数据流式传输数据库,但无法将其流式传输.

于 2011-01-17T20:20:08.627 回答