vb.net - 'System.Data.OleDb.OleDbConnection' 类型的值无法在 oledb 中的 vb.net 中转换为 'System.Data.OleDb.OleDbCommand'
问题描述
我正在尝试运行此命令
SELECT *
FROM [Sheet1$] AS A INNER JOIN [Orders$] IN'C:\Users\reddy\Desktop\Orders.xlsx' 'Excel 8.0;'
AS B
ON A.ContactName = B.ContactName;
但我收到一个错误
“内部:无法执行代码阶段,因为代码阶段引发了异常:填充:SelectCommand.Connection 属性尚未初始化”
Dim oComm As New OleDbCommand
Dim oledbAdapter As new OleDbDataAdapter(SQL,moconnection)
Dim oDataSet As New DataSet
oledbAdapter.Fill(oDataSet)
oledbAdapter.Dispose()
但我希望 Command 应该由该代码执行
解决方案
我不确定加入,我无法测试它。对于 Excel,.xlsx 文件是数据库,每个工作表都是一个表。我希望 Sheet1 和 Orders 都在同一个文件中。如果不是,您将需要使用 2 个连接和一个可以保存两个可以建立关系的 DataTables 的 DataSet 以不同的方式处理此问题。
Private Sub OPCode()
Dim dt As New DataTable
Dim strFileName As String = "C:\Users\reddy\Desktop\Orders.xlsx"
Dim strCon As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={strFileName};Extended Properties=""Excel 12.0;HDR=YES;"""
Using cn = New OleDbConnection(strCon)
Dim sql = "Select * FROM [Sheet1$] As A INNER JOIN [Orders$] AS B On A.ContactName = B.ContactName;"
Using cmd As New OleDbCommand(sql, cn)
cn.Open()
dt.Load(cmd.ExecuteReader)
End Using
End Using
DataGridView1.DataSource = dt
End Sub
推荐阅读
- lua - 让 NPC 看起来像 ROBLOX 中的玩家
- c - 套接字接收数据包错误
- python - json_normalize JSON 文件,列表包含字典(包括示例)
- php - Laravel 5.5.*:从空值创建默认对象
- html - 使媒体浏览器的下拉css菜单全高
- responsive-design - 图表绘制中的响应不正确
- docker - 无法从 Container Optimized Compute Engine 的私有 GCR 中提取映像
- flutter - 在 Flutter 中,如何在某个 (x,y) 位置找到小部件?
- sql-server - 将文本转换为多列的 SQL Server 大小写表达式
- angular - 如何从 OkObjectResult 获取价值并从 Angular6 订阅?