【转】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   > >

 
 
 
 
目录
相关文章
|
7月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
635 2
|
7月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1711 2
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
8月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
381 13
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1735 11
|
缓存 开发框架 .NET
一个功能丰富的 .NET 工具库 XiHan.Framework.Utils
XiHan.Framework.Utils 是一个功能全面的 .NET 工具库,包含字符串处理、集合扩展、加密解密、分布式 ID、文件操作、缓存、线程、国际化等模块。设计上注重高内聚、低耦合,适用于各类 .NET 应用开发。支持 AES 加密、树形结构转换、分页过滤、日志输出等功能,提供简单易用的 API。可通过 NuGet 快速安装,源码开放,采用 MIT 协议。
419 56
|
Go
在golang中发起http请求以获取访问域名的ip地址实例(使用net, httptrace库)
这只是追踪我们的行程的简单方法,不过希望你跟着探险家的脚步,即使是在互联网的隧道中,也可以找到你想去的地方。接下来就是你的探险之旅了,祝你好运!
625 26
|
10月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
738 0