SQL 查询返回“重载解决错误”
Posted
技术标签:
【中文标题】SQL 查询返回“重载解决错误”【英文标题】:SQL query returning 'Overload resolution error' 【发布时间】:2016-07-12 08:32:33 【问题描述】:我有一个 readini 文件来连接到我的 SQL Server 表,并且在我的查询代码中显示其中的数据时,我遇到了一个我无法解决的错误,这里有人可以解决吗?
这是错误:
错误 1 重载解析失败,因为无法使用这些参数调用可访问的“新”: “Public Sub New(selectCommandText As String, selectConnection As System.Data.OleDb.OleDbConnection)”:“SQLServerApplication.readini”类型的值无法转换为“System.Data.OleDb.OleDbConnection”。 'Public Sub New(selectCommandText As String, selectConnectionString As String)': '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
如果您能得到它,请提前感谢!
【问题讨论】:
那么您的readini
类是什么样的,您希望在这里调用哪个构造函数?
【参考方案1】:
我相信您会收到错误消息,因为 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
【讨论】:
解决了我遇到的编译错误,但现在出现运行时错误:System.Data.dll 中发生“System.InvalidOperationException”类型的未处理异常附加信息:ConnectionString 属性有未初始化。 听起来你没有从你的 readini 类中取回一个有效的连接字符串。使用调试器或 Debug.Print 来显示 ConnString 的内容。可能值得将 getConnectionString 方法的代码添加到您的问题中,以便我们提供帮助。 我现在将尝试逐步完成它,同时如果您想查看它,我现在已经在原始问题中发布了 getConnectionString 代码。 好的,这有帮助。您没有从 getConnectionString 返回 s 的值。只需在“结束函数”行之前添加一个“返回 s” 当然!是的,好的,这有效,谢谢!我一定会尽快接受您的回答。以上是关于SQL 查询返回“重载解决错误”的主要内容,如果未能解决你的问题,请参考以下文章
SQL 错误 ORA 01427 - 子查询返回超过 1 行的更新语句