C# 在C中使用Blob文本字符串将图像写入SQL Server#
我有一个c#函数,需要写入SQL映像列。我有一个字节数组中的图像。标准似乎是在将字节数组作为System.Data.SqlDbType.Image类型的参数传递时使用SqlCommand 不幸的是,我的函数只能使用文本查询(不要问为什么),所以我必须找到一种只使用t-SQL命令的方法。到目前为止,我所拥有的可以写入到列中,但我不知道用什么格式的字符串来生成图像blob字符串C# 在C中使用Blob文本字符串将图像写入SQL Server#,c#,sql,tsql,bytearray,C#,Sql,Tsql,Bytearray,我有一个c#函数,需要写入SQL映像列。我有一个字节数组中的图像。标准似乎是在将字节数组作为System.Data.SqlDbType.Image类型的参数传递时使用SqlCommand 不幸的是,我的函数只能使用文本查询(不要问为什么),所以我必须找到一种只使用t-SQL命令的方法。到目前为止,我所拥有的可以写入到列中,但我不知道用什么格式的字符串来生成图像blob字符串 sql = "DECLARE @ptrval binary(16)" + "SELECT @ptrval = textpt
sql = "DECLARE @ptrval binary(16)" +
"SELECT @ptrval = textptr(Photo) FROM EMPhoto WHERE Employee='" + employeeID + "'" +
"WRITETEXT EMPhoto.Photo @ptrval " + imageByteArrayAsString;
我尝试将imageByteArray转换为十六进制字符串和二进制字符串,但在SQL或读取它的应用程序中,结果似乎不正确。a是一个以0x为前缀的不带引号的十六进制字符串。ie 0xFFD8FFE0
string imageByteArrayAsString = "0x" + BitConverter.ToString(image).Replace("-", string.Empty);
A是以0x为前缀的不带引号的十六进制字符串。ie 0xFFD8FFE0
string imageByteArrayAsString = "0x" + BitConverter.ToString(image).Replace("-", string.Empty);
哈没有引号的0x。ie 0xFFD8FFE0。。。谢谢你,阿迪兰。哈!没有引号的0x。ie 0xFFD8FFE0。。。谢谢,阿迪兰,你好。这并不是什么不幸的事。数据库不是用来存储图像的。仅仅因为你能,并不意味着你应该。你能告诉我什么样的业务需求让你想避开本地存储吗?我同意。本地存储也是我的首选。我所做的功能只是第三方应用程序的中间件。我无法控制使用sql映像数据类型的应用程序。您好。这并不是什么不幸的事。数据库不是用来存储图像的。仅仅因为你能,并不意味着你应该。你能告诉我什么样的业务需求让你想避开本地存储吗?我同意。本地存储也是我的首选。我所做的功能只是第三方应用程序的中间件。我无法控制使用sql映像数据类型的应用程序。