OleDb未指定错误

桌面开发,居然也出这种问题:

1. C#读取Excel“未指定错误”

http://www.connectionstrings.com/

http://www.dnetzj.com/Content/256.html

2. 同样是桌面程序,用OleDb打开Access,conn.Open()出现“未指定的错误”:

复制代码
 1 捕捉到 System.Data.OleDb.OleDbException
 2   Message=未指定的错误
 3   Source=Microsoft JET Database Engine
 4   ErrorCode=-2147467259
 5   StackTrace:
 6        在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
 7        在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
 8        在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
 9        在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
10        在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
11        在 System.Data.OleDb.OleDbConnection.Open()
12        在 NSCEV.Database.Attribute.Opera.MDBManager.GetConnection(String path) 位置 D:\HBEDI\Src\Library\NSCEV.Database.Attribute\Opera\MDBManager.cs:行号 29
13        在 NSCEV.Database.Attribute.Opera.MDBManager.QueryToDT(String path, String sql) 位置 D:\HBEDI\Src\Library\NSCEV.Database.Attribute\Opera\MDBManager.cs:行号 34
14        在 NSCEV.HBEDI.PowerLineDesign.AidedDesignForm.FrmTowerBestChoice.FrmTowerBestChoice_Load(Object sender, EventArgs e) 位置 D:\HBEDI\Src\HBEDI\NSCEV.HBEDI.PowerLineDesign\AidedDesignForm\FrmTowerBestChoice.cs:行号 245
15   InnerException: 
复制代码

 

目前未解决!!! 2014/2/23

后记,问题解决:

http://support.microsoft.com/kb/316934/zh-cn

要使用 Jet OLE DB 提供程序访问 Excel 工作簿,请使用具有下列语法的连接字符串:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties="Excel 8.0;HDR=YES;"

在连接字符串中,用 Data Source 参数指定工作簿的完整路径和文件名。Extended Properties 参数可包含两种属性:一个属性用于 ISAM 版本,一个属性用于指示表是否包括标题。

使用 Excel 工作簿时,默认情况下,区域中的第一行是标题行(或字段名称)。如果第一个区域不包含标题,您可以在连接字符串的扩展属性中指定 HDR=NO。如果您在连接字符串中指定 HDR=NO,Jet OLE DB 提供程序将自动为您命名字段(F1 表示第一个字段,F2 表示第二个字段,依此类推)。

与传统的数据库不同,在 Excel 表中没有指定列的数据类型的直接方式。而是,OLE DB 提供程序通过对一列中的八行进行扫描来猜测 该字段的数据类型。您可以通过为连接字符串的扩展属性中的 MAXSCANROWS 设置指定一个一 (1) 至十六 (16) 之间的值,来更改要扫描的行数。

问题产生原因:

从dxf导入800个面状房屋后,3维球Mulitpolygon报内存溢出错误,调用堆栈在CreateBuffer方法处,外部无法捕获Direct3D9Exceptiontry-Catch捕获异常不处理太坑爹了。再调用Connection对象Open Excel和Access的时候导致无法打开Excel和Access,即产生Oledb未知错误。

已捕获:“E_OUTOFMEMORY: Ran out of memory (-2147024882)”(SlimDX.Direct3D9.Direct3D9Exception) 异常消息 = "E_OUTOFMEMORY: Ran out of memory (-2147024882)", 异常类型 = "SlimDX.Direct3D9.Direct3D9Exception" 。

 

posted @   太一吾鱼水  阅读(2855)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2012-02-23 ORM学习笔记——NHibernate和LINQ to SQL
点击右上角即可分享
微信分享提示