gpt4 book ai didi

c# - 确定 BLOB 列的大小

转载 作者:行者123 更新时间:2023-11-30 22:41:57 25 4
gpt4 key购买 nike

我从数据库中提取一个 BLOB 并存储在一个字节数组中。最初它被定义为与 DB 上的 BLOB 列相同的大小,这是相当大的。

int maxsize = 20971520;
int thisSize;
Byte[] picture = new Byte[maxsize];

所以我捕获了 blob:

rdr.GetBytes(3, 0, picture, 0, maxsize);

然后写入磁盘:

FileStream fstream = new FileStream(ImageFullName,FileMode.OpenOrCreate,FileAccess.Write);
BinaryWriter bwriter = new BinaryWriter(fstream);
bwriter.Write(picture);
bwriter.Flush();
bwriter.Close();
fstream.Close();

问题是这些 blob 中的大多数都比 maxsize 小得多,那么如何将 Byte 数组的大小调整为 blob 列的实际大小?

最佳答案

为什么不查询以查看字段的长度,以便 byte[] 第一次是正确的大小。

来自 MSDN

If you pass a buffer that is null, GetBytes returns the length of the entire field in bytes, not the remaining size based on the buffer offset parameter.

所以你的代码会变成

long length = rdr.GetBytes(3, 0, null, 0, maxsize);

Byte[] picture = new Byte[length];

rdr.GetBytes(3, 0, picture, 0, length);

关于c# - 确定 BLOB 列的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com