vb.net - 使用 Backgroundworker 从 MSAccess 数据库中的 Datagridview.rows.add 出错
问题描述
Private Sub bw_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bw.DoWork
SampleOnly(dgvProductList)
End Sub
Sub SampleOnly(ByVal dgv As DataGridView)
Try
If dgv.InvokeRequired Then
dgv.Invoke(Sub() dgv.Rows.Clear())
Else
dgv.Rows.Clear()
End If
Dim i As Integer
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
Dim cmd As New OleDbCommand("select ProductID,Barcode,AKA,ProductName,Principal,CPrice,PPrice,Quantity from Product", cn)
dr = cmd.ExecuteReader
While dr.Read
i += 1
If dgv.InvokeRequired Then
dgv.Invoke(Sub()
dgvProductList.Rows.Add(i, dr.Item("ProductID").ToString, dr.Item("Barcode").ToString, dr.Item("AKA").ToString, dr.Item("ProductName").ToString, dr.Item("Principal").ToString, dr.Item("CPrice").ToString, dr.Item("PPrice").ToString, dr.Item("Quantity").ToString)
dgvProductList.ClearSelection()
End Sub)
Else
dgvProductList.Rows.Add(i, dr.Item("ProductID").ToString, dr.Item("Barcode").ToString, dr.Item("AKA").ToString, dr.Item("ProductName").ToString, dr.Item("Principal").ToString, dr.Item("CPrice").ToString, dr.Item("PPrice").ToString, dr.Item("Quantity").ToString)
dgvProductList.ClearSelection()
End If
Thread.Sleep(500)
End While
Catch ex As Exception
cn.Close()
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
End Sub
Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bw.RunWorkerCompleted
MsgBox("Done!")
End Sub
无法将“System.__ComObject”类型的 COM 对象转换为接口类型“IRowset”。此操作失败,因为 IID 为“{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .
至少有人可以告诉我为什么我会收到这条消息dgvProductList.Rows.Add(i, dr.Item("ProductID").ToString, dr.Item("Barcode").ToString, dr.Item("AKA").ToString, dr.Item("ProductName").ToString, dr.Item("Principal").ToString, dr.Item("CPrice").ToString, dr.Item("PPrice").ToString, dr.Item("Quantity").ToString)
谢谢
解决方案
推荐阅读
- node.js - 如何使用 javascript、mocha 和 jasmine 在 vs 代码中运行 botium 测试
- javascript - 如何修复 'TypeError: Cannot read property 'keycloak-token' of undefined' javascript中的错误?
- python - 从 df 的子集中删除某些行
- memory-management - FORTRAN 和 MPI:使用输入文件分配和初始化用户定义类型的数组
- sql - 需要修改查询而不使用交叉/外部应用
- python - 在数据框中使用字符串拆分列
- javascript - 如何用多个字符串数据绘制谷歌折线图
- hyperledger-fabric - Blockchain Ledger 如何在 peer 中实现/存储
- java - 我在使用 SQL 执行程序时遇到问题
- directx-11 - 创建交换链时如何解决此多重采样错误?