Reputation: 7605
.Parameters.Add("Notes", OracleClient.OracleType.VarChar, 3000).Value = strBoxNotes
The Error produced says
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
When I peak at the definition
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
How do I force the IDE to choose the constructor I want?
Upvotes: 0
Views: 812
Reputation: 15091
Just installed Nuget version 19.6.0 of Oracle.ManagedDataAccess
I found that OracleType.VarChar
is now OracleDbType.Varchar2
with this change you can use the parameters of the .Add method without names.
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
The Object Browser will you show you the parameters.
Upvotes: 0
Reputation: 2685
Try adding parameters with parameter name in an explicit mode avoiding IDE choices like this:
.Parameters.Add(name:="Notes", dbType:=OracleClient.OracleType.VarChar, size:=3000).Value = strBoxNotes
Upvotes: 1