在批量更新dbf數據值時,使用ShapeLib讀寫dbf數據的效率非常驚人。
首先通過cvs獲取ShapeLib庫,http://shapelib.maptools.org/,編譯生成shapelib.dll
編譯方法參考:https://blog.csdn.net/cair2/article/details/52193064
下面重點講一下怎麼使用ShapeLib對dbf數據進行讀寫:
另外shapelib.dll不需要引用到項目裏面,放到根目錄即可
1、打開dbf
IntPtr hDbf = ShapeLib.DBFOpen(textBox1.Text, "rb+");//"rb"(只讀)"rb+"(讀/寫)
if (hDbf.Equals(IntPtr.Zero))
{
MessageBox.Show("打開dbf文件失敗", "系統提示");
}
2、獲取字段索引
int index = ShapeLib.DBFGetFieldIndex(hDbf, "名稱");
3、讀取字段值
StringBuilder str = new StringBuilder();
ShapeLib.DBFReadStringAttribute2(hDbf, i,index, str);//讀取字段的值,並將其作爲字符串返回。
4、寫入字段新值
ShapeLib.DBFWriteStringAttribute(hDbf, i, index, "字段新值");
通過以上4個步驟,就能實現dbf數據的讀寫了。
附上ShapeLib的幫助類:http://pan.baidu.com/s/1qWGE6hI
編譯好的DLL https://download.csdn.net/download/zdb330906531/10442859