【发布时间】:2014-08-04 22:36:36
【问题描述】:
我对 VB 没有太多经验。我已经构建了一个可以从表(FoxPro)中检索数据的 VB 应用程序。代码如下:
Dim dBaseCommand As New System.Data.OleDb.OleDbCommand("SELECT * FROM inventory", con)
Dim dBaseDataReader As System.Data.OleDb.OleDbDataReader = dBaseCommand.ExecuteReader(CommandBehavior.SequentialAccess)
但我需要运行以下 SQL 而不是 SELECT * FROM inventory
SELECT itemnumber, mfgr, SUM(qty) AS cqty, unitcost, description FROM inventory GROUP BY itemnumber
我更换了 SQL,但它不起作用。如何在我的 VB 代码中实现该 SQL 或 GROUP BY 语句?
更新:
SQL 是来自 MySQL 的示例 sql。但是我已经更新了我现在在我的 VB 应用程序中实际使用的 SQL。它不会显示任何错误或不会关闭应用程序本身,也不会生成应该由该应用程序生成的文件。如果我使用第一个示例代码中的 sql,它会从该表中很好地生成文件。
我也去了数据库资源管理器(数据源)来运行这个查询。出现了以下问题。有任何想法吗? Foxpro 或任何其他解决方法不支持?
执行 SQL:“GROUP BY 子句丢失或无效”
验证 SQL 语法:此提供程序不支持此命令
这与没有 group by 的this link 有关系吗?
如果我使用 ODBC 数据提供程序,它是否支持 SQL?
更新 2:
看起来 ODBC 驱动程序支持 GROUP BY。但微软建议使用 OLEDB 数据提供程序而不是不支持 GROUP BY 的 ODBC。在 Visual Basic 数据连接中,我没有将 ODBC 视为可用的数据提供者。它只有 SQL server 数据提供者和 OLEDB 数据提供者。有什么方法可以让我使用 ODBC 数据提供程序,然后使用 GROUP BY 语句?
*我的声誉不允许我包含更多引用以引用最后的信息。
【问题讨论】:
-
再详细一点怎么样。它是如何“不起作用”的?没结果?例外?一个你没想到的数字?
-
不起作用?什么错误?
-
感谢您对此进行调查。请查看我更新的问题。