【转】ADO.NET连接访问dbf数据库问题

简介: from:http://space.cnblogs.com/question/7423/    悬赏园豆:20 [已解决问题] 浏览: 2067次   我发现当dbf文件的长度超过8的时候,使用OleDbCommand 查询就会出现“jet 数据库引擎找不到对象”的错误,我搜索到(http://space.cnblogs.com/question/2046/)说解决了这个问题,方法是将表的名字加个中括号。
 
悬赏园豆:20 [已解决问题] 浏览: 2067次
 

我发现当dbf文件的长度超过8的时候,使用OleDbCommand 查询就会出现“jet 数据库引擎找不到对象”的错误,我搜索到(http://space.cnblogs.com/question/2046/)说解决了这个问题,方法是将表的名字加个中括号。但是我在尝试的时候这个方法似乎无效啊.

string mailto:filepath=@%22F:\shapefile\chzhXiaoqu.dbf";
string dir = System.IO.Path.GetDirectoryName(filepath);
string file = "["+ System.IO.Path.GetFileName(filepath)+"]";//加不加中括号都不行啊
string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=DBASE 5.0;Persist Security Info=False", dir);
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
string selectText = string.Format("SELECT * FROM {0}", file);

OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(selectText, conn);
System.Data.DataTable table = new System.Data.DataTable();
adapter.Fill(table);//这行就出错了,怎么回事呢?

 

 


 


提问于:2009-06-08 22:18
其他回答(1)
0
 

string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}; Extended Properties=DBASE 5.0;Persist Security Info=False", dir);

你看你这个格式化的连接字符串,参数为什么用dir?dir是目录名,不包括路径及文件名,对于你的程序来说,dir变量的值就是"shapefile",程序怎么可能找到数据库文件在哪?

把dir换为filepath应该就可以了,这里需要使用完整绝对路径才对。

 

还有你这句:string selectText = string.Format("SELECT * FROM {0}", file);

file是数据库的文件名,又不是数据库里的表名,在你的程序中file变量的值就是"chzhXiaoqu.dbf",你把它弄进查询语句干什么?要换成一个数据库内的表名啊。

 

dir和file变量都是无意义的,删除这两个变量吧。

回复 | 斯克迪亚 | 园豆:4880 (老鸟四级) | 2009-06-09 02:17 |
0
 

我也赞成楼上的

回复 | 陳修君 | 园豆:480 (菜鸟二级) | 2009-06-09 08:26
 
 
 

===================================================================

===================================================================

 

如果不清楚连接字符,查看这个网站:http://www.connectionstrings.com/  


Visual   FoxPro     OLE   DB,   OleDbConnection   (.NET)  


  Database   container   (.DBC):

"Provider=vfpoledb.1;Data   Source=C:\MyDbFolder\MyDbContainer.dbc;Collating   Sequence=machine "  


  Free   table   directory:

"Provider=vfpoledb.1;Data   Source=C:\MyDataDirectory\;Collating   Sequence=general "  


  Force   the   provider   to   use   an   ODBC   DSN:

" "Provider=vfpoledb.1;DSN=MyDSN " "  
Read   more   (Microsoft   msdn)   > >
  ODBC  


  Database   container   (.DBC):

"Driver={Microsoft   Visual   FoxPro   Driver};SourceType=DBC;SourceDB=c:\myvfpdb.dbc;Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO "  


  Free   Table   directory:

"Driver={Microsoft   Visual   FoxPro   Driver};SourceType=DBF;SourceDB=c:\myvfpdbfolder;Exclusive=No;Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO "  
"Collate=Machine "   is   the   default   setting,   for   other   settings   check   the   list   of   supported   collating   sequences   > >

 
 
 
 
目录
相关文章
|
22天前
|
关系型数据库 数据库 RDS
【瑶池数据库训练营及解决方案本周精选(探索PolarDB,参与RDS迁移、连接训练营)】(5.30-6.8)
本周精选聚焦数据库迁移训练营、快速连接云数据库RDS训练营及智能多模态搜索解决方案。为用户提供模拟教程与实战演练,学习RDS MySQL实例连接与数据管理技能,助力企业智能化发展。每周解锁数据库实战新场景,抓紧时间,精彩不容错过!
|
3月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
2月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
1月前
|
缓存 开发框架 .NET
一个功能丰富的 .NET 工具库 XiHan.Framework.Utils
XiHan.Framework.Utils 是一个功能全面的 .NET 工具库,包含字符串处理、集合扩展、加密解密、分布式 ID、文件操作、缓存、线程、国际化等模块。设计上注重高内聚、低耦合,适用于各类 .NET 应用开发。支持 AES 加密、树形结构转换、分页过滤、日志输出等功能,提供简单易用的 API。可通过 NuGet 快速安装,源码开放,采用 MIT 协议。
144 56
|
1月前
|
Go
在golang中发起http请求以获取访问域名的ip地址实例(使用net, httptrace库)
这只是追踪我们的行程的简单方法,不过希望你跟着探险家的脚步,即使是在互联网的隧道中,也可以找到你想去的地方。接下来就是你的探险之旅了,祝你好运!
94 26
|
2月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
535 28
|
2月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
186 14
|
3月前
|
数据库
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
【YashanDB知识库】YDC连接数据库报错yasdb return code is zero
|
6月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
153 5
|
9月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
156 7

热门文章

最新文章