博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用OleDb读取Excel时报错:定义了过多的列
阅读量:5259 次
发布时间:2019-06-14

本文共 1653 字,大约阅读时间需要 5 分钟。

----------修改:----------------------------------------------------------------------

string sql = "select *  from [{0}A:DA]";

string sql = "select *  from [录像测试用例$A:DA]";

--------一下为原因--------------------------------------------------------------------

string strSql = "select * from  [Sheet1$] where [银行账号] is not null and [银行账号] <> ''";使用上面会出现“定义了过多的字段”这个错误。 郁闷的是你的Excel表字段就几十列(有效数据列),为什么会说“定义了过多的字段”呢?,为什么我要特别强调是有效的数据列呢????

问题原因:
Excel总列数是A-IV (255个单位长度),建立Excel时候,执行了插入操作,会是Excel长度超过255(虽然列数还是A-IV),导致无法读取。用上面的查询语句没有限制Sheet1$ 这张表的列数(程序在构造OleDbDataAdapter会加载所有的列数,包括空白列),这样就超过了Excel长度域
解决方法:
目前我这张Sheet1$表有效数据列最长只有100列(其他的是空白列),所以查询条件我就限定在A—CV列,这样就在myDataAdapter.Fill(ds, "Sheet1$");就不会报”定义了过多的字段”出错。
我猜想,插入行也同样会出现这样的问题,只要我们在查询条件下,限定行数和列数就可以避免此类问题。
官网的解释
症状:
当您添加新字段或更改现有字段的属性后,保存表时,您收到消息"定义了过多的字段,"跟邮件"中遇到错误保存。 数据类型未被更改"。 即使您有 255 个或更少在表中定义的字段,您将会收到这些消息。
注意: 您还收到此信息如果添加或修改基于具有太多的字段的表的报表中的字段。 注意: 此错误消息生成 Microsoft Jet 数据库引擎 3.0 保留的错误号 3190。
本文假定您熟悉 Visual Basic for Applications 和创建 Microsoft Access 应用程序使用随 Microsoft Access 提供的编程工具。 有关 Visual Basic for Applications 的更多信息,请参阅"构建应用程序与 Microsoft Access"手册的版本。
注意: Visual Basic for Applications 被称为 Access Basic 在 Microsoft Access 版本 1 x 和 2.0。 有关Access Basic,请参考 Microsoft Access 版本 1 x 中的"介绍到 Programming"手动或在 Microsoft Access 版本2.0"构建应用程序"手册
原因: 

若要释放内部的列数为已删除的字段或字段,修改其属性,执行以下项:

·         在 Microsoft Access 7.0 或 97,单击另存为 / 导出在的文件菜单并保存不同的名称表。 然后,删除原始表,并重命名为原始表名称的新表。

警告: 在文件菜单在版本 1 x 或 2.0 上单击另存为复制表,不记录结构。 在使用追加查询来填充新的表之前,不要删除原始表。

·         在 Microsoft Access 1 x 或 2.0,单击保存文件菜单上,并保存不同的名称表。 填充新表,原始表中的数据。 然后,删除原始表,并重命名为原始表名称的新表。

您还可以通过压缩数据库来释放内部的列数。

转载于:https://www.cnblogs.com/pnljs/archive/2012/07/02/2573113.html

你可能感兴趣的文章
IE浏览器整页截屏程序(二)
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>