gpt4 book ai didi

c# - MySqlDataReader.GetBytes

转载 作者:行者123 更新时间:2023-11-30 01:36:09 28 4
gpt4 key购买 nike

我对 MySqlDataReader.GetBytes 遇到了一些问题,并引用列序号。

表结构:

ID - Primary, int, not null, auto_increment
TNode - , not null
Packet - longblob
Timestamp - timestamp

如果我运行以下查询:

SELECT * FROM table WHERE TNode = 2;

并尝试使用以下方法获取 longblob 的大小:

while (reader.Read()) 
{
long l = reader.GetBytes(2,0,null,0,0);
}

我将收到以下错误:

GetBytes can only be called on binary or guid columns

其中,列索引 2 是。即使我按预期迭代所有列,也会收到相同的错误。但是如果我运行以下查询:

SELECT Packet, ID, Timestamp FROM table WHERE TNode = 2;

随后:

while (reader.Read()) 
{
long l = reader.GetBytes(0, 0, null, 0, 0);
}

没问题。我能够获取长 Blob 的长度,并用它做我需要做的事情。

关于为什么它不允许我使用非零列索引有什么想法吗?

谢谢。

最佳答案

不确定 MySQL,但在 SQL Server 中 SELECT * 可能不会按您期望的顺序返回列。它可能不是第 2 列。事实上,如果您更改表并继续使用 SELECT *,您可能会引入一个难以发现的错误。我建议按照您在测试中所做的那样指定列。

关于c# - MySqlDataReader.GetBytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863795/

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