1

我有需要写入 SQL 图像列的 ac# 函数。我有一个字节数组中的图像。标准似乎是在将字节数组作为 System.Data.SqlDbType.Image 类型的参数传递时使用 SqlCommand。

不幸的是,我的函数只能使用文本查询(不要问为什么),所以我必须找到一种只使用 T-SQL 命令的方法。到目前为止我所拥有的内容可以写入列,但我不知道用什么格式的字符串来制作图像 blob 字符串。

sql = "DECLARE @ptrval binary(16)" +
"SELECT @ptrval = textptr(Photo) FROM EMPhoto WHERE Employee='" + employeeID + "'" +
"WRITETEXT EMPhoto.Photo @ptrval " + imageByteArrayAsString;

我尝试将 imageByteArray 转换为十六进制字符串和二进制字符串,但它似乎在 SQL 或读取它的应用程序中最终不正确。

4

1 回答 1

1

T-SQL 二进制常量是一个不带引号的十六进制字符串,前缀为 0x。即0xFFD8FFE0 ...

string imageByteArrayAsString = "0x" + BitConverter.ToString(image).Replace("-", string.Empty);
于 2012-04-04T04:12:26.213 回答