DataReader.GetFieldType(11) 已傳回 null。

Jia
Dec 17, 2020

2020.12.17

前言:最近在用winform開發一個小工具,是為了一鍵遷移資料庫資料,由於資料表欄位有geometry,所以比較多小問題要克服,在運行ADO.NET 抓資料下來的時候,在抓 geometry 欄位時,會發生錯誤:

看了一些文章,貌似是NET 應用程式若有用到 SQL Server 資料庫的 geometry 型別,並須安裝另外的程式,我查到的解法總共有兩種

  1. 額外在電腦安裝SQL Server 2008 R2 Feature Pack
  2. 在專案中引用Microsoft.SqlServer.Types

因為我認為能解決的,盡量都在專案中解決,所以以下紀錄第二種方式

  1. 利用NuGet 安裝 Microsoft.SqlServer.Types

2.在App.config中寫入下方

<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" /></dependentAssembly></assemblyBinding></runtime>

大概長這樣

--

--

Jia

看一次不懂 就看兩次吧。每一天努力一點,不知不覺就會成為想像中的樣子的。 like60955@gmail.com