获取存储在存储二进制数据的数据列中的字节长度

时间:2013-09-10 07:50:15

标签: c# sql-server sql-server-2008

我的表中有一个数据列,用于存储“image”(SQLDBType)类型,即。它有二进制数据。 我想通过C#读取SQLDataReader中上面列的值。 我使用了函数

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

6 - >我的专栏号

0 - >从哪里开始索引

数据 - >我想读的缓冲区

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

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

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

怎么做?

2 个答案:

答案 0 :(得分:3)

您可以让数据库告诉您 - 例如

SELECT data, DATALENGTH(data) AS DataSize
FROM tableOfData
WHERE id = yourId

答案 1 :(得分:3)

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

顺便说一句,您应该远离image

  将来的Microsoft SQL Server版本中将删除

ntext 文本图像数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)varchar(max)varbinary(max)