最近在擴充資料對接工具的功能
經常會遇到這個狀況
當然還有其他同類提示,例如 int/decimal 無法轉 System.String 等等
無獨有偶
這些錯誤幾乎都是在 DataTable 轉換成 IList 的時候發生的
上網搜索了一下,找到這個解決方式:
將原本的
pi.SetValue(t, v, null);
改為
pi.SetValue(t, Convert.ChangeType(reader.GetValue(Ordinal), Property.PropertyType), null);
另一個會提示類似錯誤的地方,是在寫入資料庫的環節
這就要看物件中每個屬性的資料型別
與最終寫入資料庫時的資料型別是否一致
還有 SQL Statement 寫法的配合
這部分有時間再分享