c# - 如何在 SQL 中获取二进制图像

标签 c# sql-server database tsql

我可以在 C# 中使用这个函数来获取二进制图像

public static byte[] ImageToBinary(string imagePath)
{
            var fileStream = new FileStream(HttpContext.Current.Server.MapPath("~/" + imagePath), FileMode.Open, FileAccess.Read);
            var buffer = new byte[fileStream.Length];
            fileStream.Read(buffer, 0, (int)fileStream.Length);
            fileStream.Close();
            return buffer;
}

但我需要在sql中做同样的事情

我用这个查询

(SELECT * FROM OPENROWSET(BULK N'C:\Users\0000001_computers_415.jpeg', SINGLE_BLOB) AS CategoryImage)

但是我得到一个错误:

Msg 4861, Level 16, State 1, Line 1
Cannot bulk load because the file "C:\Users\0000001_computers_415.jpeg" could not be opened. Operating system error code 3(The system cannot find the path specified.).

最佳答案

您的 SQL Server 只能找到它自己上下文中的文件。您必须将该文件复制到 SQL Server 计算机上的目录中以使用本地权限访问它,或者您必须定义共享路径并让您的 SQL Server 从那里读取。

您的 c:\users\... 很可能是您自己本地机器的驱动器。

关于c# - 如何在 SQL 中获取二进制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405852/

相关文章:

c# - 如何在 .net 中嵌入 word 文档

c# - 来自 MemoryStream 的 fo-dicom JPEG 图像压缩

sql - 简单的自连接查询性能不佳

sql-server - sql cross join - 有人发现它有什么用?

php - 检查我的数据库表中是否存在某个值

java - 数据库中最后插入行的值

c# - 如何在C#中将位图转换为intptr

c# - 通过 Internet 连接 MySQL 和 .net 应用程序有危险吗?

c# - 在 CommandText 中使用 SQL 语句选择字段,c#

sql-server - 由于此查询中定义的提示,查询处理器无法生成查询计划。重新提交查询并且不使用 SET FORCEPLAN