如何使用 Dapper 从 SQL Server Image 字段中读取 blob 数据?
Posted
技术标签:
【中文标题】如何使用 Dapper 从 SQL Server Image 字段中读取 blob 数据?【英文标题】:How to read blob data from SQL Server Image field using Dapper? 【发布时间】:2019-06-28 18:26:41 【问题描述】:我需要从 SQL Server 数据库的 Image 类型列将 blob 数据读入内存流。我如何使用 Dapper 做到这一点?
我正在阅读 Dapper 手册,但找不到相关信息。
更新:我需要从数据库中读取数据(从查询中)。到目前为止建议的所有链接都包含有关如何将 blob 存储在数据库中的信息。
【问题讨论】:
您是否通过以下链接:dapper-tutorial.net/knowledge-base/9634587/… 是的,我都看到了,但似乎都不相关。我需要使用查询从服务器读取。链接说明了在需要更新和插入 8k 以上数据时如何操作。image
是 varbinary(max)
的已弃用名称。不要使用image
@AmitJoshi 该问题没有相关答案。无论如何它都太老了 - Dapper 在过去 7 年中经历了很多的变化
@RasanjanaN 这只是a very old SO question 的转发,没有相关答案。该网站不是 Dapper 官方网站
【参考方案1】:
想通了。结果动态类型为 byte[]。
var row = con.QueryFirst("SELECT BLOBFIELD FROM TABLE WHERE ID = 1");
byte[] bytes = drawings.BLOBFIELD;
using (var stream = new System.IO.FileStream(@"C:\Temp\Test.dat", System.IO.FileMode.CreateNew))
stream.Write(bytes, 0, bytes.Length);
【讨论】:
换句话说,创建一个带有byte[]
字段的对象。其余代码不相关。这不适用于 large 二进制文件
@PanagiotisKanavos 如何使其适用于大型二进制文件?以上是关于如何使用 Dapper 从 SQL Server Image 字段中读取 blob 数据?的主要内容,如果未能解决你的问题,请参考以下文章
C#Dapper使用JSON_VALUE进行SQL Server 2016
C# Dapper SQL Server 连接错误:连接字符串中不存在 Dapper 连接到另一个数据库
Dapper use Table Value Parameter in C# (Sql Server 数组参数)
dapper之连接数据库(Oracle,SQL Server,MySql)
有时 Dapper 或 System.Data 不会为某些数据库(SQL Server 2012 和 2019)上的简单选择查询返回正确的结果