在我的数据库中,我们有一个varbinary字段,它以字节为单位存储文件内容。
因为文件很大,一次读取所有内容会导致超时,所以我希望以块的形式读取数据,就像我们在sql中有write函数来使用块写入数据一样。
你有什么建议吗?
谢谢
发布于 2012-06-14 22:54:07
您看过FILESTREAM数据类型吗?
有关如何操作的更多信息,请访问http://weblogs.asp.net/aghausman/archive/2009/03/16/saving-and-retrieving-file-using-filestream-sql-server-2008.aspx
发布于 2012-06-15 14:48:53
要通过一个简单的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;
}https://stackoverflow.com/questions/11035614
复制相似问题