【发布时间】:2018-09-11 07:31:21
【问题描述】:
我有base64string(图像标志),我想将它插入到数据库中。在数据库中,列类型是 varbinary。我的查询是
update Organization set MobileLogo='gjdgfkjgk...' where orgId=1676
我得到以下错误
消息 257,级别 16,状态 3,行 1 从数据类型隐式转换 varchar(max) 到 varbinary(max) 是不允许的。使用转换 运行此查询的函数。
图片转base64的代码
string imagePath = @"C:\Users\arvind.ch\Downloads\Icons\SISClient_iCons\Enrich.png";
string imgBase64String = GetBase64StringForImage(imagePath);
这里我要存储图片-
我需要有 sql 查询才能将其插入到 db 而不是 C# 代码。上面给出的 URL 都是关于 C# 的
【问题讨论】:
-
base 64 是一种获取任意二进制数据并将其作为字符串存储/传输的方法。你有一个
varbinary列,它能够存储任意二进制数据。你可能认为你在这里错过了明显的东西吗? -
不要转换为 base 64 / decode base 64 以返回任意二进制数据。然后在
varbinary参数中直接将其传递给SQL Server,并避免 将其视为字符串。它最自然的表示是二进制数据。 存储它。 -
发布存储图像的实际代码。不是将其转换为字符串的代码。
标签: sql sql-server