Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用C将大型二进制数据保存到sql DB中#_.net_Database_File_Binary_Sqlparameter - Fatal编程技术网

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

.net 使用C将大型二进制数据保存到sql DB中#,.net,database,file,binary,sqlparameter,.net,Database,File,Binary,Sqlparameter,我需要一个代码来使用C#将(最终是大的)文件存储到DB中 我使用的解决方案如下: (我在数据库中使用varbinary(MAX)列) 1) 创建SqlCommand 2) 创建SqlParameter 3) 设置参数.Value=File.ReadAllBytes(文件路径) 4) 执行SqlCommand 有没有更有效的解决办法?由于文件可能很大,所以在将所有字节读入内存,然后将它们存储到数据库中时,我会担心性能问题 提前感谢您使用varbinary(MAX)列,您所拥有的是最好的。虽然可以将

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

我使用的解决方案如下: (我在数据库中使用varbinary(MAX)列)

1) 创建SqlCommand

2) 创建SqlParameter

3) 设置参数.Value=File.ReadAllBytes(文件路径)

4) 执行SqlCommand

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


提前感谢您

使用
varbinary(MAX)
列,您所拥有的是最好的。虽然可以将数据从数据库中流出来,但无法将其流进去。

使用
varbinary(MAX)
列可以获得最好的数据。虽然您可以将数据从数据库中流出来,但无法将其流进来。

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

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

UPDATE <table> SET <field>.WRITE(@data, null, null) WHERE ...
更新集。写入(@data,null,null)其中。。。

这允许在不必读取整个文件的情况下将数据块写入列。

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

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

UPDATE <table> SET <field>.WRITE(@data, null, null) WHERE ...
更新集。写入(@data,null,null)其中。。。

这允许在不必读取整个文件的情况下将数据块写入到列中。

这不是一个完全重复的问题,但与此非常相似,这里有许多不同的问题被问到,共识始终是将文件存储在数据库中是一个坏主意。性能最终几乎总是一个问题。@David-大文件。请看这份白皮书:谢谢你的链接,@Oded。“现在读吧。”奥德——再说一遍,让我说。。好文章。谢谢我喜欢这个网站!我一直在学习新的东西。@David:SQL Server中的
FILESTREAM
类型也至少部分解决了在数据库中存储大型二进制对象所带来的问题。这不是完全重复的问题,但与此问题非常相似,这里有许多不同的问题,大家一致认为,将文件存储在数据库中是个坏主意。性能最终几乎总是一个问题。@David-大文件。请看这份白皮书:谢谢你的链接,@Oded。“现在读吧。”奥德——再说一遍,让我说。。好文章。谢谢我喜欢这个网站!我一直在学习新的东西。@David:SQL Server中的
FILESTREAM
类型也至少部分解决了在数据库中存储大型二进制对象所带来的问题。