2

我的表中有一个数据列,它存储“图像”(SQLDBType)类型,即。它有二进制数据。我想通过 C# 读取 SQLDataReader 中上述列的值。我使用了这个功能

dr.GetBytes(6,0,Data,0,length);

6 -> 我的专栏编号。

0 -> 从哪里开始读取索引

数据->我要读取的缓冲区

0-> 我要复制的缓冲区中的索引

length -> 要读取的数据的长度。

现在我想获取数据列中二进制数据的长度(这里,我在上面使用了长度变量)。

怎么做?

4

2 回答 2

3

你可以让数据库告诉你——例如

SELECT data, DATALENGTH(data) AS DataSize
FROM tableOfData
WHERE id = yourId
于 2013-09-10T07:56:18.697 回答
3

您可以向使用 SQLDATALENGTH函数的查询添加另一列。首先读取该列的值,然后分配缓冲区并使用GetBytes.

顺便说一句,您应该从image.

ntexttextimage数据类型将在 Microsoft SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)varchar(max)varbinary(max)

于 2013-09-10T07:56:54.600 回答