You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用DbDataReader读取Actian PSQL中DOUBLE类型的原始字节数组?

解决Actian PSQL中DOUBLE类型转字节数组的问题
  • 通过GetDouble取值后转字节数组
    这是最直接可靠的方案,因为DOUBLE本质是固定8字节的IEEE 754浮点数,先读取数值再转换即可:

    double value = reader.GetDouble(columnIndex);
    byte[] doubleBytes = BitConverter.GetBytes(value);
    

    注意:BitConverter的字节序依赖当前系统(Windows默认小端),如果需要匹配Actian PSQL的原始存储字节序,可根据情况反转数组:

    if (BitConverter.IsLittleEndian)
    {
        Array.Reverse(doubleBytes);
    }
    
  • 尝试GetFieldValue<byte[]>(视驱动兼容性而定)
    部分ADO.NET驱动支持直接将数值类型读取为字节数组,可尝试调用:

    byte[] doubleBytes = reader.GetFieldValue<byte[]>(columnIndex);
    

    若驱动抛出转换异常,回到第一种方法即可。

  • 不要使用GetBytes:该方法仅针对BLOB/VARBINARY这类二进制对象类型,DOUBLE属于数值类型,驱动会直接抛出类型转换异常,无需尝试。

内容的提问来源于stack exchange,提问作者Nicholas Kellner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:34:50