【发布时间】:2012-05-04 21:07:35
【问题描述】:
我正在尝试从 Excel 工作表中读取数据,但有一个例外情况,即没有为我不理解的一个或多个必需参数提供值。这是我的代码,直到错误指向的位置:
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyConnection = New System.Data.OleDb.OleDbConnection _
("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\Staff Contracts.xlsx; Extended Properties=""Excel 12.0;HDR=NO""")
MyCommand = New System.Data.OleDb.OleDbDataAdapter _
("select * from [Staff Contracts$A4:K14] where I=176", MyConnection)
MyCommand.TableMappings.Add("Table", "TestTable")
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet)
异常指向最后一行MyCommand.Fill(DtSet),这表明我的选择语句存在问题。以前我的代码读取数据并在选择中没有 where 子句的情况下显示它,但是当我添加 where 语句以便它只能从列 I 的值等于 176 的行中读取数据时,它而是给出一个异常,表明某些必需的参数缺少值
【问题讨论】:
-
这会是我添加 where statmt 时无法正常工作的原因吗?
-
您确定“where I=176”的存在是它工作和错误之间的唯一区别吗? I列的数据类型呢?你确定不是文本,条件应该是“where I='176'”?