我有一个带有varbinary列的表:
My table {
Id int primary key,
FileBody varbinary(max)
}
Run Code Online (Sandbox Code Playgroud)
现在,我要阅读它。很简单,我可以在此答案中使用类似的代码,但是它将转换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);
Run Code Online (Sandbox Code Playgroud)
使用GetSqlBytes
SqlCommand command = new SqlCommand( .... );
...
SqlDataReader sqlReader = command.ExecuteReader(CommandBehavior.SequentialAccess);
byte[] outbyte = sqlReader.GetSqlBytes(1).Buffer;
Run Code Online (Sandbox Code Playgroud)
我相信您正在搜索:
SqlCommand command = new SqlCommand();
SqlDataReader reader = command.ExecuteReader();
System.IO.Stream stream = reader.GetStream(1); // 1 is the index of the column
Run Code Online (Sandbox Code Playgroud)
GetStream方法:
检索二进制,图像,varbinary,UDT和变量数据类型为Stream。
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |