SQL 查询返回 'Overload resolution error'

SQL query returning 'Overload resolution error'

我有一个 readini 文件连接到我的 SQL 服务器 table,在我的查询代码中显示来自它的数据,我收到一个错误,我无法求解决,请问这里有没有人可以?

这是错误:

Error 1
Overload resolution failed because no accessible 'New' can be called with these arguments: 'Public Sub New(selectCommandText As String, selectConnection As System.Data.OleDb.OleDbConnection)': Value of type 'SQLServerApplication.readini' cannot be converted to 'System.Data.OleDb.OleDbConnection'.
'Public Sub New(selectCommandText As String, selectConnectionString As String)': Value of type 'SQLServerApplication.readini' cannot be converted to 'String'.

这是代码:

Imports System.Data.OleDb
Imports System.Data.SqlClient

Public Class frmViewDtb


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim connection As readini = New readini()
    connection.getConnectionString()

    Dim sql As String = "SELECT * FROM tblPerson"
    Dim da As New OleDbDataAdapter(sql, connection)
    Dim ds As New DataSet()
    da.Fill(ds, "tblPerson")
    DataGridView1.DataSource = ds
    DataGridView1.DataMember = "tblPerson"

End Sub
End Class

发生错误的行是第 13 行:

 Dim da As New OleDbDataAdapter(sql, connection)

getConnectionString 代码;

    Public Function getConnectionString() As String

    Dim s As String =
        "Provider=" & provider & ";" &
        "user ID=" & username & ";" &
        "password=" & password & ";" &
        "initial catalog=" & databasename & ";" &
        "data source=" & servername & "; " &
    "Persists Security Info=False"

End Function

如能拿到,先谢谢了!

我相信您遇到了错误,因为 OleDbDataAdpater 的构造函数需要两个字符串,而您的 connection 变量不是字符串。我怀疑您的代码需要如下所示:

Dim connection As readini = New readini()
Dim ConnString = connection.getConnectionString()

Dim sql As String = "SELECT * FROM tblPerson"
Dim da As New OleDbDataAdapter(sql, ConnString)
Dim ds As New DataSet()
da.Fill(ds, "tblPerson")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "tblPerson"

getConnectionString 方法也需要修改以添加 Return 语句:

Public Function getConnectionString() As String

    Dim s As String =
        "Provider=" & provider & ";" &
        "user ID=" & username & ";" &
        "password=" & password & ";" &
        "initial catalog=" & databasename & ";" &
        "data source=" & servername & "; " &
        "Persists Security Info=False"
    Return s
End Function