使用C#将大型二进制数据保存到sql DB中

发布于 2024-10-12 14:27:29 字数 301 浏览 3 评论 0原文

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

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

1)创建SqlCommand

2)创建SqlParameter

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

4)执行SqlCommand

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

先感谢您

I need a code to store (eventually large) files into DB using C#.

The solution I'm using is sth like:
(I'm using varbinary(MAX) column in the DB)

1) Create SqlCommand

2) Create SqlParameter

3) Set parameter.Value = File.ReadAllBytes(filePath)

4) Execute SqlCommand

Is there any more effective solution? Since the file can be large, I'm affraid of performance problems, when reading all bytes into memory, and then storing them into DB.

Thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

相思故 2024-10-19 14:27:29

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

它展示了一种使用如下命令的方法:

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

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

I'm facing the same issue right now. There is a way to sequentially write into varbinary fields. See this article: 'Download and Upload Images from SQL Server via ASP.NET MVC' http://www.codeproject.com/KB/aspnet/streamingblobhttp.aspx

It shows a way to use a command like:

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

This allows writing chunks of data into your column without having to read an entire file.

独自←快乐 2024-10-19 14:27:29

您所拥有的是 varbinary(MAX) 列所能获得的最好结果。虽然您可以将数据传出数据库,但无法将其传入

What you have is the best you can get with a varbinary(MAX) column. While you can stream data out of the database, there's no way to stream it in.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文