我的表中有一个数据列,它存储“图像”(SQLDBType)类型,即。它有二进制数据。我想通过 C# 读取 SQLDataReader 中上述列的值。我使用了这个功能
dr.GetBytes(6,0,Data,0,length);
6 -> 我的专栏编号。
0 -> 从哪里开始读取索引
数据->我要读取的缓冲区
0-> 我要复制的缓冲区中的索引
length -> 要读取的数据的长度。
现在我想获取数据列中二进制数据的长度(这里,我在上面使用了长度变量)。
怎么做?
我的表中有一个数据列,它存储“图像”(SQLDBType)类型,即。它有二进制数据。我想通过 C# 读取 SQLDataReader 中上述列的值。我使用了这个功能
dr.GetBytes(6,0,Data,0,length);
6 -> 我的专栏编号。
0 -> 从哪里开始读取索引
数据->我要读取的缓冲区
0-> 我要复制的缓冲区中的索引
length -> 要读取的数据的长度。
现在我想获取数据列中二进制数据的长度(这里,我在上面使用了长度变量)。
怎么做?
你可以让数据库告诉你——例如
SELECT data, DATALENGTH(data) AS DataSize
FROM tableOfData
WHERE id = yourId
您可以向使用 SQLDATALENGTH
函数的查询添加另一列。首先读取该列的值,然后分配缓冲区并使用GetBytes
.
顺便说一句,您应该从image
.
ntext、text和image数据类型将在 Microsoft SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)、varchar(max)和varbinary(max)。