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

如何处理SqlGeometry类型的空几何字段读取报错问题?

你遇到的异常是因为对应字段为数据库NULL时,直接调用GetSqlBytes读取空字段会触发运行时错误,只需要在读取前增加空值判断即可,修改后的代码如下:

SqlGeometry g = null;
// 先判断索引为2的字段是否为数据库空值
if (!reader.IsDBNull(2))
{
    g = new SqlGeometry();
    g.Read(new BinaryReader(reader.GetSqlBytes(2).Stream));
}
// 若业务需要空值时返回类型安全的空几何对象,可替换为下方逻辑
// else
// {
//     g = SqlGeometry.Null;
// }

相关注意事项:

  • reader.IsDBNull(字段索引)是ADO.NET中判断数据库字段是否为NULL的标准方法,必须在读取字段值前调用,避免空值读取异常
  • 空值场景下可以根据业务需求选择将变量赋值为null,或者使用SqlGeometry.Null得到内置的空几何实例
  • 如有需要还可以额外校验reader.GetSqlBytes(2).Stream的可读取状态,避免流损坏导致的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:57:02