我的表中有一个数据列,用于存储“image”(SQLDBType)类型,即。它有二进制数据。 我想通过C#读取SQLDataReader中上面列的值。 我使用了函数
dr.GetBytes(6,0,Data,0,length);
6 - >我的专栏号
0 - >从哪里开始索引
数据 - >我想读的缓冲区
0→我要复制的缓冲区中的索引
长度 - >要读取的数据长度。
现在我想得到数据列中二进制数据的长度(这里,我使用了上面的长度变量)。
怎么做?
答案 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)。