【转】ADO.Net连接DBF文件

简介: Shapefile属性表是dbf格式的,开源项目SharpMap提供了二进制读取dbf的方法,但是如果想查询的话,不用数据库还真不好做。ADO.Net的OLE DB和ODBC都可以连接、查询dbf。

 

Shapefile属性表是dbf格式的,开源项目SharpMap提供了二进制读取dbf的方法,但是如果想查询的话,不用数据库还真不好做。ADO.Net的OLE DB和ODBC都可以连接、查询dbf。之前我一直都用OLEDB,如OleDbConnection,OleDbDataAdapter,OleDbCommand等对象操作dbf,方法请参考:http://space.cnblogs.com/question/7423/

使用OLEDB查询DBF的时候,对DBF文件名称的长度有限制。当长度超过8的时候,就会出错:“Jet 数据库引擎找不到对象……”。后来改用ODBC连接,方法:

 

复制代码
img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif
 1string filepath=@"F:\shapefile\chzhXiaoqu.dbf";
 2string dir = System.IO.Path.GetDirectoryName(filepath);
 3string file = "["+ System.IO.Path.GetFileName(filepath)+"]";
 4            
 5string connStr = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB="+dir+";Exclusive=No;";
 6OdbcConnection conn2 = new OdbcConnection(connStr);
 7conn2.Open();
 8
 9string selectText = string.Format("SELECT * FROM {0}", file);
10OdbcDataAdapter da = new OdbcDataAdapter(selectText, conn2);
11System.Data.DataTable table = new System.Data.DataTable();
12da.Fill(table);//OK
复制代码

如果提示错误:“ERROR [IM001] [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能”,需要更新一下驱动,我往Windows\System32下拷贝一个vfpodbc.dll , 6.1.8630.1版本,解决了这个问题。
http://dllcentral.com/download/c7842840e5ce10cd493d02128506ada0/vfpodbc.dll

 

 

目录
相关文章
|
15天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
消息中间件 XML 网络协议
『NLog』.Net使用NLog使用方式及详细配置(输出至文件/RabbitMQ/远程网络Tcp)
📣读完这篇文章里你能收获到 - Nlog输出至文件/RabbitMQ/远程网络Tcp配置文档 - Nlog配置参数详解 - .NET CORE项目接入
2481 0
『NLog』.Net使用NLog使用方式及详细配置(输出至文件/RabbitMQ/远程网络Tcp)
|
JavaScript 前端开发
vue 部署项目,访问页面空白,找不到js或css文件 (net::ERR_ABORTED 404 (Not Found))
vue 部署项目,访问页面空白,找不到js或css文件 (net::ERR_ABORTED 404 (Not Found))
1738 0
vue 部署项目,访问页面空白,找不到js或css文件 (net::ERR_ABORTED 404 (Not Found))
|
6月前
|
对象存储
.net core 阿里云接口之拷贝文件
紧接上文, 1)[.net core 阿里云接口之获取临时访问凭证](https://developer.aliyun.com/article/1363447?spm=a2c6h.12873639.article-detail.7.2b0e5b1cpeWbZ5 ".net core 阿里云接口之获取临时访问凭证") 2)[.net core 阿里云接口之将指定的OSS文件下载到流](https://developer.aliyun.com/article/1363886 ".net core 阿里云接口之将指定的OSS文件下载到流") 本文继续阿里云接口调用,将指定的OSS文件下载到流。
34 0
|
6月前
|
C#
.net core 从(本地)服务器获取APK文件并解析APK信息
## 1、apk解析除了使用客户端利用aapt.exe、unzip.exe开发客户端解析外,还可以直接利用服务进行解析 ```csharp /// <summary> /// 从本地服务器获取APK文件并解析APK信息 /// </summary> /// <param name="fileName">APK文件的完整路径</param> /// <returns></returns> [HttpPost, HttpGet, HttpOptions, CorsOptions] public IActionResult DecodeAPK(string fileName) { if(fi
30 0
|
6月前
|
JavaScript 前端开发 关系型数据库
.net core + vue + elementui 删除指定日期段、指定路径下的所有文件
# 1、呈现效果 ![image.png](https://ucc.alicdn.com/pic/developer-ecology/j2ygdazy447va_0782583bbc894c33a079db9e44385acd.png) # 2、后端 ## 1)服务层 ```csharp /// <summary> /// 删除指定修改日期段及指定路径下的所有文件 /// </summary> /// <param name="filepath">指定路径</param> /// <returns>返回删除结果提示</returns> public string DeleteSpecif
42 0
|
6月前
|
C#
.net core 删除指定路径下的所有文件以及文件夹(文件夹建议保留目录)
1、服务层 ```csharp /// <summary> /// 删除指定路径下的所有文件 /// </summary> /// <param name="filepath">指定路径</param> /// <returns></returns> public string DeleteSpecifiedPathAllFile(string filepath) { try { DirectoryInfo info = new DirectoryInfo(filepath); // 去除文件夹的只读属性 info.Attribu
28 0
|
7月前
|
开发框架 JSON Kubernetes
.NET Core - 环境变量配置和文件提供程序配置方式详解
.NET Core - 环境变量配置和文件提供程序配置方式详解
|
9月前
|
数据库 C#
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
218 0
|
9月前
|
开发框架 前端开发 JavaScript
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件