当表有 42 个字段时,为啥 .NET 中的 MS Access adodb 在字段计数中返回 34?

Posted

技术标签:

【中文标题】当表有 42 个字段时,为啥 .NET 中的 MS Access adodb 在字段计数中返回 34?【英文标题】:Why MS Access adodb in .NET returns 34 in fieldcount when table has 42 fields?当表有 42 个字段时,为什么 .NET 中的 MS Access adodb 在字段计数中返回 34? 【发布时间】:2010-04-12 14:31:27 【问题描述】:

当表有 42 个字段时,为什么 .NET 中的 MS Access adodb 在字段计数中返回 34? 我在我的 MS Access mdb 数据库的表中看到 42 个字段。但是 .NET 中的 ADODB 层只能看到 34 个字段。当我调用读取器类的方法 getOrdinal("FieldName") 时,会发生 Outofrange 异常。

是我在设置连接、许可证或其他任何东西时缺少的东西吗?

谢谢

【问题讨论】:

也许一些代码,看看你的访问表设计,将有助于找到原因。 因为 MS-Access 有问题,或者您有 where 子句,或者您从正确的表中选择,但从错误的数据库中选择。 查询是什么样的?你确定没有使用“select *”? @Quandary:访问没有问题。实际上,这里不涉及访问,仅涉及 Jet/ACE。 【参考方案1】:

自从您编写代码后,您是否更改过表格?有时您必须重新链接 Access 中的表,否则它将看不到新列。

【讨论】:

找到了。谢谢你。原因是代码和数据库不匹配。 虽然通过 ODBC 链接到不同数据库的 Access 前端可能具有完全描述的症状(即,在您删除并重新创建链接之前,对源表的结构更改不会显示),前端“MS Access adodb in .NET”上的问题说明,所以这不是一个真正的相关点。 我看到了,我不知道 Access-ODBC 链接问题是如何导致的,但我认为它可能值得一试。至少它可能已经开始 OP 寻找正确的方向。 正如我所说,访问是错误的 ;-)) 不,Access 没有问题,但 ODBC 是旧的。

以上是关于当表有 42 个字段时,为啥 .NET 中的 MS Access adodb 在字段计数中返回 34?的主要内容,如果未能解决你的问题,请参考以下文章

雪花任务条件:当表有数据时

当表有0行时如何检查数据库表是不是存在?

在 sql (MS-Access) 中编写分组查询

Laravel:当表有两个外键时,为具有关系的数据库表播种

oracle当表A1,数据发生update时,将字段time更新为当前时间

为自增字段设置起始值的存储过程