mysql - 如何解决这个跨线程错误?

标签 mysql vb.net backgroundworker

跨线程操作无效:从创建文本框的线程以外的线程访问控制文本框。 vb.net

Sub autocompletepayee()

    Dim cmd2 As New Odbc.OdbcCommand
    Dim dr As Odbc.OdbcDataReader
    Dim myquery As String
    myquery = "select payee from tbrequest"
    cmd2.CommandText = myquery
    cmd2.Connection = con
    dr = cmd2.ExecuteReader

    While dr.Read
        txtPayee.AutoCompleteCustomSource.Add(dr.GetString(0)) 'this is the line where the error prompt

    End While
    dr.Close()

最佳答案

这应该可行,尽管如果更多地了解代码所在的位置,它可能会更短

    Dim cmd2 As New Odbc.OdbcCommand
    Dim dr As Odbc.OdbcDataReader
    Dim myquery As String
    myquery = "select payee from tbrequest"
    cmd2.CommandText = myquery
    cmd2.Connection = con
    dr = cmd2.ExecuteReader

    While dr.Read
        If txtPayee.InvokeRequired Then
            txtPayee.Invoke(Sub()
                                txtPayee.AutoCompleteCustomSource.Add(dr.GetString(0)) 'this is the line where the error prompt
                            End Sub)
        Else
            txtPayee.AutoCompleteCustomSource.Add(dr.GetString(0)) 'this is the line where the error prompt
        End If

    End While
    dr.Close()

关于mysql - 如何解决这个跨线程错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38406932/

相关文章:

php - 将mysql查询的输出依次插入到html表中

javascript - PHP if 语句将允许我将项目添加到数据库但不会让 Javascript 中的 echo 或 alert

mysql - 如何在不使用 For Each 的情况下将单元格数据添加到具有绑定(bind)列的未绑定(bind)列? - VB网络

c# - BackgroundWorker 的 OnDoWork 是从调用线程还是工作线程调用的?

mysql - 如何在 django 中向大文本字段添加唯一约束?

php - 更改密码 PHP 问题

vb.net - 更改datagrid列的顺序或索引

php - 自动 uploader

c# - 为什么我的 backgroundWorker 不工作?

c# - 后台 worker : Make sure that ProgressChanged method has finished before executing RunWorkerCompleted