桌面开发,居然也出这种问题:
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 工作簿,请使用具有下列语法的连接字符串:
在连接字符串中,用 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方法处,外部无法捕获Direct3D9Exception。try-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" 。