過去 2 時間、パラメーターをバインドできなかった理由を突き止めようとしていました (「using」ブロックを使用していないことはわかっています。また、System.Data.OracleClient が非推奨であることもわかっています)。次のコード:
Dim nCount As Integer
sSQL = " SELECT COUNT(*) FROM USERS WHERE USER_ID = :UID "
Dim conn As OracleConnection = New OracleConnection(ConfigurationSettings.AppSettings("connString"))
conn.Open()
Dim cmd As OracleCommand = New OracleCommand(sSQL, conn)
cmd.CommandType = CommandType.Text
With cmd
.Parameters.Add(New OracleParameter(":UID", txtUserID.Text))
End With
Try
nCount = cmd.ExecuteScalar()
Catch ex As Exception
End Try
私はオンラインで見つけることができるすべてのバリエーションを試しました: Parameters.Add、Add、または AddWithValue にコロンを付けても付けなくても、括弧で追加するか、新しい OracleParameter オブジェクトを作成してから追加します...何も機能していないようです。
しかし、クエリで USER_ID をハードコードするだけで、parameter.Add を削除すると、値が返されます。