Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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
Vb.net 带有VarChar对象的OracleParameter参数构造函数_Vb.net_Visual Studio - Fatal编程技术网

Vb.net 带有VarChar对象的OracleParameter参数构造函数

Vb.net 带有VarChar对象的OracleParameter参数构造函数,vb.net,visual-studio,Vb.net,Visual Studio,产生的错误表示 .Parameters.Add("Notes", OracleClient.OracleType.VarChar, 3000).Value = strBoxNotes 当我在定义上达到顶峰时 Severity Code Description Project File Line Suppression State Error BC30519 Overload resolution failed because no accessible 'Add'

产生的错误表示

.Parameters.Add("Notes", OracleClient.OracleType.VarChar, 3000).Value = strBoxNotes
当我在定义上达到顶峰时

Severity    Code    Description Project File    Line    Suppression State
Error   BC30519 Overload resolution failed because no accessible 'Add' can be called without a narrowing conversion:
    'Public Overloads Function Add(name As String, dbType As OracleDbType, direction As ParameterDirection) As OracleParameter': Argument matching parameter 'dbType' narrows from 'OracleType' to 'OracleDbType'.
    'Public Overloads Function Add(name As String, dbType As OracleDbType, direction As ParameterDirection) As OracleParameter': Argument matching parameter 'direction' narrows from 'Integer' to 'ParameterDirection'.
    'Public Overloads Function Add(name As String, dbType As OracleDbType, size As Integer) As OracleParameter': Argument matching parameter 'dbType' narrows from 'OracleType' to 'OracleDbType'.  ProjectName C:\Projects\frm_Main.vb 492 Active

Public Function Add(name为String,dbType为OracleDbType,direction为ParameterDirection)为oracleparmeter尝试在显式模式下添加参数名为parameter的参数,避免像这样的IDE选择:

Public Function Add(name As String, dbType As OracleDbType, direction As ParameterDirection) As OracleParameter <- The one the IDE thinks I want
Public Function Add(name As String, dbType As OracleDbType, val As Object, dir As ParameterDirection) As OracleParameter
Public Function Add(name As String, dbType As OracleDbType, size As Integer, val As Object, dir As ParameterDirection) As OracleParameter
Public Function Add(name As String, dbType As OracleDbType, size As Integer) As OracleParameter <-- The one I want

刚刚安装了Oracle.ManagedDataAccess的Nuget 19.6.0版

我发现
OracleType.VarChar
现在是
oracledbype.Varchar2
通过此更改,您可以使用.Add方法的参数而不使用名称

 .Parameters.Add(name:="Notes", dbType:=OracleClient.OracleType.VarChar, size:=3000).Value = strBoxNotes

对象浏览器将向您显示参数。

谢谢您的回答。我从来没有猜到这一点。编译器在方法(同名)中遇到问题,这些方法的参数作为对象,这意味着将是每种类型。在本例中,要选择正确的方法,可以使用命名参数调用该方法。命名参数非常便于个性化正确的方法(如在sql中,当您放置where条件时,结果会更快)。命名参数在具有多个可选参数的方法中也非常方便,您可以仅使用感兴趣的参数调用此方法,您可以更改参数的顺序等。不过,我很高兴我的回答很有帮助,欢迎您。:)
Imports Oracle.ManagedDataAccess.Client

Private Sub OPCode()
    Using cn As New OracleConnection("Your Connection String")
        Using cmd As New OracleCommand("Select * From Employees Where Name = @Name;", cn)
            cmd.Parameters.Add("@Name", OracleDbType.Varchar2, 3000)
        End Using
    End Using
End Sub