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:HBEDISrcLibraryNSCEV.Database.AttributeOperaMDBManager.cs:行号 29
13        在 NSCEV.Database.Attribute.Opera.MDBManager.QueryToDT(String path, String sql) 位置 D:HBEDISrcLibraryNSCEV.Database.AttributeOperaMDBManager.cs:行号 34
14        在 NSCEV.HBEDI.PowerLineDesign.AidedDesignForm.FrmTowerBestChoice.FrmTowerBestChoice_Load(Object sender, EventArgs e) 位置 D:HBEDISrcHBEDINSCEV.HBEDI.PowerLineDesignAidedDesignFormFrmTowerBestChoice.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" 。

原文地址:https://www.cnblogs.com/yhlx125/p/3484640.html