gpt4 book ai didi

c# - 将数据库中的图像注入(inject)到 sql 报告查询中

转载 作者:行者123 更新时间:2023-11-30 12:57:21 25 4
gpt4 key购买 nike

如果我针对 mssql 数据库创建简单的报告查询

if not exists(select * from DeliveryTemplate where TemplateId=2)
begin
select u.usersCode, 1,2,'User {UsersCode}',' hello {Username},', null, dt.DeliveryCode
from User u
left join DeliveryTemplate dt on u.Id = dt.UserId
end

如何扩展此查询以便从数据库中插入图像,该图像在 DeliveryTemplate 中表示为 byte[]

public class DeliveryTemplate{
...
public virtual byte[] MyImage { get; set; }
}

只是为了说明I know to transform byte[] to Image但我不知道如何在上述查询中注入(inject)图像。

最佳答案

以下 T-SQL 对我有用:

UPDATE DeliveryTemplate SET MyImage = 
(SELECT * FROM OPENROWSET (BULK N'C:\Images\Image.jpg', SINGLE_BLOB) rs)
WHERE UserId = identity_value

编辑:按如下方式创建图像字段:

ALTER TABLE DeliveryTemplate ADD MyImage VARBINARY(MAX) NULL

请注意,您必须将图像存储在 SQL Server 具有访问权限的文件夹中。如果它是一个自定义文件夹(如上所述),您需要为此授予 SQL Server 权限(我认为它是用户 MSSQL$MSSQLSERVER2012,具体取决于您的 SQL 版本)。

您可以通过检查 SQL 数据文件夹或存储数据库 MDF 文件的任何位置的权限来检查这一点(在 SSMS 中,右键单击“数据库”>“属性”>"file")。在我的机器上,数据库存储在 C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER2012\MSSQL\DATA 中。

当然,您不想在该文件夹中弄得太多,因为您的数据库实际上存储在那里。但您可以使用它来测试上述 SQL 代码并将图像导入数据库。在任何情况下你都不想删除那里的任何 MDF 或 LDF 文件!!! (删除 MDF 文件是一个“恢复生成事件”,引自优秀的 MS 虚拟学院视频中的 Christopher Harrison)

关于c# - 将数据库中的图像注入(inject)到 sql 报告查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34718039/

25 4 0
文章推荐: javascript - 为什么我不能将 标签插入到 CKEditor4 中?
文章推荐: ios - Epos打印机iOS SDK