私は少し問題があり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 は、バイナリ列または GUID 列でのみ呼び出すことができます
これは、列インデックス 2 です。すべての列を反復しても、予想どおり、同じエラーが発生します。しかし、次のクエリを実行すると:
SELECT Packet, ID, Timestamp FROM table WHERE TNode = 2;
に続く:
while (reader.Read())
{
long l = reader.GetBytes(0, 0, null, 0, 0);
}
問題はありません。longblob の長さを取得し、それに対して必要なことを行うことができます。
ゼロ以外の列インデックスを使用できない理由についてのアイデアはありますか?
ありがとうございました。