如何从SQL Server读取blob
本文关键字:读取 blob Server SQL | 更新日期: 2023-09-27 18:10:43
我有一个包含varbinary列的表:
My table {
Id int primary key,
FileBody varbinary(max)
}
现在我想读它。这很简单,我可以在这个答案中使用类似的代码,但它将varbinary
转换为byte[]
,我想避免它。
是否可以将varbinary
放入MemoryStream
而不转换为byte[]
?
可以使用SqlDataReader.GetBytes
从列中读取数据,也可以使用SqlDataReader.GetSqlBytes
或SqlDataReader.GetStream
的例子:使用getBytes
SqlCommand command = new SqlCommand( .... );
...
SqlDataReader sqlReader = command.ExecuteReader(CommandBehavior.SequentialAccess);
byte[] outbyte = new byte[bufferSize];
sqlReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
使用GetSqlBytes SqlCommand command = new SqlCommand( .... );
...
SqlDataReader sqlReader = command.ExecuteReader(CommandBehavior.SequentialAccess);
byte[] outbyte = sqlReader.GetSqlBytes(1).Buffer;
我相信你正在寻找这个:
SqlCommand command = new SqlCommand();
SqlDataReader reader = command.ExecuteReader();
System.IO.Stream stream = reader.GetStream(1); // 1 is the index of the column
GetStream方法:
以流的形式检索二进制、图像、可变二进制、UDT和可变数据类型。