Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询返回';过载解析错误';_Sql_.net_Sql Server_Vb.net_Oledb - Fatal编程技术网

SQL查询返回';过载解析错误';

SQL查询返回';过载解析错误';,sql,.net,sql-server,vb.net,oledb,Sql,.net,Sql Server,Vb.net,Oledb,我有一个readini文件连接到我的SQL Server表,在我显示数据的查询代码中,我得到了一个我无法解决的错误,这里有人可以解决吗 这就是错误: 错误1 重载解析失败,因为无法使用以下参数调用可访问的“New”: “Public Sub New(selectCommandText作为字符串,selectConnection作为System.Data.OleDb.OleDbConnection)”:类型为“SQLServerApplication.readini”的值无法转换为“System.

我有一个readini文件连接到我的SQL Server表,在我显示数据的查询代码中,我得到了一个我无法解决的错误,这里有人可以解决吗

这就是错误:

错误1
重载解析失败,因为无法使用以下参数调用可访问的“New”: “Public Sub New(selectCommandText作为字符串,selectConnection作为System.Data.OleDb.OleDbConnection)”:类型为“SQLServerApplication.readini”的值无法转换为“System.Data.OleDb.OleDbConnection”。
“Public Sub New(selectCommandText作为字符串,selectConnectionString作为字符串)”:无法将类型为“SQLServerApplication.readini”的值转换为“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

如果你能得到它,请提前感谢

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

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

那么您的
readini
类是什么样子的,您希望在这里调用哪个构造函数?这解决了我遇到的编译错误,但现在我得到了一个运行时错误:System.Data.dll中发生了类型为“System.InvalidOperationException”的未处理异常。其他信息:ConnectionString属性尚未初始化。这听起来好像您没有从readini类中获取有效的连接字符串。使用调试器或Debug.Print显示字符串的内容。可能值得将getConnectionString方法的代码添加到您的问题中,以便我们能够提供帮助。我现在将尝试单步执行,同时,如果您愿意,我已经在原始问题中发布了getConnectionString代码。好的,这很有帮助。您没有从getConnectionString返回s的值。当然,只需在“结束函数”行之前添加一个“返回s”!是的,好的,这很有效,谢谢!我一定会尽快接受你的答复。