ArcEngine对Blob字段赋值的方法
今天在測試數據入庫程序,發現對某個圖層操作之后,調用StopOperation,會出現“嘗試寫入或讀取受保護的內存”錯誤。
經過測試,最終發現是因為該圖層包含有Blob字段,而代碼沒有專門對Blob字段進行處理。
解決辦法:
1、需要判斷字段類型,如果是Blob類型,調用下面輔助方法獲取Blob值:
IMemoryBlobStreamVariant varBlobStream = objFieldValue as IMemoryBlobStreamVariant;
if (varBlobStream == null) return null;
object objValue;
varBlobStream.ExportToVariant(out objValue);
byte[] bytesArray = objValue as byte[];
2、然后調用下面方法賦值:
IMemoryBlobStream pMBS = new MemoryBlobStreamClass();
IMemoryBlobStreamVariant varBlobStream = (IMemoryBlobStreamVariant)pMBS;
object objValue = bytesArray;
varBlobStream.ImportFromVariant(objValue);
pFeature.set_Value(posField, varBlobStream);
轉載于:https://www.cnblogs.com/ITGIS/archive/2013/01/12/2857758.html
總結
以上是生活随笔為你收集整理的ArcEngine对Blob字段赋值的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ-1322 Chocolate 动
- 下一篇: 使用DOS命令找到占用80端口的程序,关