sql-server - SqlDataReader.GetValue 对几何列不成功
问题描述
当我在使用几何类型的表上有一个 SqlDataReader 时,reader.GetFieldType(index)
返回 null 并reader.GetValue(index)
导致
System.IO.FileLoadException:'无法加载文件或程序集'Microsoft.SqlServer.Types,Version=10.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)'
我尝试添加 nuget 包 Microsoft.SqlServer.Types v14.0.1016.290,但这并不能解决问题。
解决方案
我还没有使用过该geometry
类型,只需阅读文档即可。表示坐标系中的geometry
一个点,它以二进制形式存储。所以试试这个:
SqlGeometry geometry = new SqlGeometry();
geometry.Read(new BinaryReader(reader.GetSqlBytes(index).Stream));
推荐阅读
- sql - 获取 2 个最近事件的 SQL 窗口函数
- amazon-s3 - Angular Service Worker 和 CloudFront
- django - 使用 UUID 作为主键向 django 1.11 添加自动增量模型
- c# - 在 CEF 中设置 cookie 的路径?
- python - Python重新错误输出
- ubuntu-18.04 - 连接 openvpn 客户端时出现可选错误
- python - 包括重叠间隔的分块列表
- html - 为什么最后一行元素在我的 CSS 网格中移位?
- bash - How to execute 'git comit --amend' in bash script
- c++ - 如何根据 GitLab CI 构建脚本中的设置更改代码中的某些内容