【问题标题】:SELECT Command Doesn't Copy All DataSELECT 命令不会复制所有数据
【发布时间】:2013-05-16 02:01:03
【问题描述】:

我正在使用SELECT 语句将我的数据从 Excel 复制到 datagridview。但它表现得并不好..

数据显示是这样的

但是我的excel数据

我的代码:

Dim CON As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""D:\OTDR_DATA\" & TextBox1.Text & "\PRODUCT_CAREER.XLS"";Extended Properties=""Excel 8.0;HDR=YES"";")
Dim DA As New OleDbDataAdapter("SELECT * FROM [PRODUCT_CAREER$]", CON)
DA.Fill(DS)
DataGridView1.DataSource = DS.Tables(0)

有人知道为什么会这样吗?我在谷歌上搜索过,但没有这样的问题..

【问题讨论】:

  • “父部件”列中有多少单元格只有在遇到该数字代码之前才有数字?
  • 数字列第一,Parent里面都有2070行,我也试过把第一行的73502改成A735032。但结果还是一样
  • 显示“转移”代码..
  • 转账码是多少?这是将数据从 Excel 显示到我的 datagridview 的代码。只是已经工作了
  • 这个问题有你的答案。这是因为 Jet 引擎扫描行以确定类型。 stackoverflow.com/questions/298726/…

标签: vb.net excel oledbconnection


【解决方案1】:

Excel 驱动程序通过前 8 行(默认情况下)确定列中的数据类型。我有一种感觉,在遇到字母数字之前,您在该列中有很多数字数据。

要更改该行为,您需要将注册表项 TypeGuessRows 设置为 0。密钥的位置取决于您在连接字符串中使用的驱动程序(Jet、AccessConnectivityEngine 等)

Here 是关于如何更改设置的详细说明。

【讨论】:

  • 是的,你是对的,我的前 8++ 行是整数值.. 那么如何更改注册表?
  • 你能发布你的连接字符串吗?
  • 谢谢。我添加了指向如何更改设置的说明的链接
  • 直到:HKEY_LOCAL_MACHINE ► Software ► Microsoft ► Office ► 12.0 一切都在那里,但在那之后没有► Access Connectivity Engine ► Engines?如果有,你有HKEY_LOCAL_MACHINE ► Software ► Microsoft ► Office ► 14.0 吗?
  • Galanter Bravo 先生.. 我有 14.0 ,在我更改之后.. 运行良好.. 非常感谢您的时间先生..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多