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