Asp.net C# SQL Server 读取块中的二进制 SQL 字段数据
本文关键字:SQL 二进制 字段 数据 读取 net Server Asp | 更新日期: 2023-09-27 18:37:06
我的数据库我们有一个varbinary字段,它以字节形式存储文件内容。
由于文件很大,一次读取所有内容会导致超时,所以我想以块的形式读取数据,就像我们在 sql 中有写入函数来使用块写入数据一样。
请提出任何想法?
谢谢
你看过FILESTREAM
数据类型吗?
有关如何执行此操作的更多信息 http://weblogs.asp.net/aghausman/archive/2009/03/16/saving-and-retrieving-file-using-filestream-sql-server-2008.aspx
要通过一个简单的SELECT ...
来做到这一点,你可以下降到 ADO.NET,即 ExecuteReader
,指定CommandBehaviour.SequentialAccess
标志。现在,您可以重复调用 GetBytes
方法,将顺序区块读入缓冲区。例如:
byte[] buffer = new byte[8040];
int bytes;
long offset = 0;
while((bytes = (int)reader.GetBytes(col, offset, buffer, 0, buffer.Length)) >0) {
// TODO: do something with `bytes` bytes from `buffer`
offset += bytes;
}