jam*_*ams 14 c# sql-server asp.net types
SqlDbType映射到varBinary(max)的是什么?SqlDbType.VarBinary说它限制在8K.SQL Server文档说varbinary(max)可以存储aprrox.2GB.但是SqlDbType.VarBinary说它限制在8K.
Rem*_*anu 24
长度为-1的SqlDbType.VarBinary等价于VARBINARY(MAX),至少在理论上是这样.但问题有点复杂,因为还有一种类型(不是枚举值),即SqlTypes.SqlBytes可以使用的类型.而且有SqlTypes.SqlFileStream其也可以用于VARBINARY(MAX)类型,当他们的FILESTREAM属性.
但问题是这些枚举或类型都没有涵盖VARBINARY(MAX)在ADO.Net中使用列的真正问题:内存消耗.所有这些类型,当使用"开箱即用"时,将创建在内存中分配为单个数组的值的副本,这最多是无法执行的,但随着内容变得越来越大,因为分配失败而无法使用.我有几篇文章展示了VARBINARY(MAX)使用流语义处理ADO.Net中的值的正确方法,避免了创建整个内容的内存中副本:
试试这个:
SqlParameter blobParam = new SqlParameter("@blob", SqlDbType.VarBinary, buffer.Length);
blobParam.Value = buffer;
cmd.Parameters.Add(blobParam);
Run Code Online (Sandbox Code Playgroud)
看看是否有效
| 归档时间: |
|
| 查看次数: |
21301 次 |
| 最近记录: |