Vb.net 当代码在windows10操作系统的VS2010上运行时,应用程序按钮不可见。但同样的代码在Windows7VS2010中运行良好

Vb.net 当代码在windows10操作系统的VS2010上运行时,应用程序按钮不可见。但同样的代码在Windows7VS2010中运行良好,vb.net,Vb.net,我们最近从7胜转为10胜。 Visual Studio 2010安装在Win 10上。使用.net framework v4.0构建代码。在本地运行代码时,应用程序上的几个按钮在运行代码时不可见。 发布相同的代码,然后部署到服务器上并运行,按钮可见。 我已经检查了IE兼容性,在不同的浏览器上运行了应用程序,但仍然没有结果。试图检查解决方案的属性 没有出现错误消息。仅在本地模式下运行时不可见的按钮 Public Shared Function ButtonVisibleCheck(ByVal Id

我们最近从7胜转为10胜。 Visual Studio 2010安装在Win 10上。使用.net framework v4.0构建代码。在本地运行代码时,应用程序上的几个按钮在运行代码时不可见。 发布相同的代码,然后部署到服务器上并运行,按钮可见。 我已经检查了IE兼容性,在不同的浏览器上运行了应用程序,但仍然没有结果。试图检查解决方案的属性

没有出现错误消息。仅在本地模式下运行时不可见的按钮

Public Shared Function ButtonVisibleCheck(ByVal Id As String, ByVal Num As Integer) As Boolean
    Dim retVal As Boolean = False
    Dim cmd As OracleCommand
    Dim SHOW_BUTTON_SQL As String = "DECLARE v_status BOOLEAN; BEGIN v_status := xx_pkg.button_show(:p_app_number,:p_page_number ,:p_button_id); if v_status THEN :p_return_val := 'Y'; ELSE :p_return_val := 'N'; END IF;  END;"

    Try
        cmd = New OracleCommand
        cmd.CommandText = SHOW_BUTTON_SQL
        cmd.CommandType = CommandType.Text
        cmd.Parameters.Add(New OracleParameter("p_return_val", OracleType.VarChar, 1)).Direction = ParameterDirection.Output
        cmd.Parameters.AddWithValue("p_app_number", ApplicationDAO.AppId).DbType = DbType.Int32
        cmd.Parameters.AddWithValue("p_page_number", PageNumber).DbType = DbType.Int32
        cmd.Parameters.AddWithValue("p_button_id", ButtonId).DbType = DbType.AnsiString

        OracleCommandProcessor.ExecuteNonQueryInContext(cmd)

        retVal = IIf(DbUtilities.Nvl(cmd.Parameters("p_return_val").Value, "N") = "Y", True, False)


    Catch ex As Exception
        retVal = "Error while processing Validation Check"
    Finally
        cmd = Nothing
    End Try

    Return retVal
End Function
我已经检查了IE兼容性,在不同的浏览器上运行了应用程序,但仍然没有结果。试图检查解决方案的属性

没有出现错误消息。仅在本地模式下运行时不可见的按钮

Public Shared Function ButtonVisibleCheck(ByVal Id As String, ByVal Num As Integer) As Boolean
    Dim retVal As Boolean = False
    Dim cmd As OracleCommand
    Dim SHOW_BUTTON_SQL As String = "DECLARE v_status BOOLEAN; BEGIN v_status := xx_pkg.button_show(:p_app_number,:p_page_number ,:p_button_id); if v_status THEN :p_return_val := 'Y'; ELSE :p_return_val := 'N'; END IF;  END;"

    Try
        cmd = New OracleCommand
        cmd.CommandText = SHOW_BUTTON_SQL
        cmd.CommandType = CommandType.Text
        cmd.Parameters.Add(New OracleParameter("p_return_val", OracleType.VarChar, 1)).Direction = ParameterDirection.Output
        cmd.Parameters.AddWithValue("p_app_number", ApplicationDAO.AppId).DbType = DbType.Int32
        cmd.Parameters.AddWithValue("p_page_number", PageNumber).DbType = DbType.Int32
        cmd.Parameters.AddWithValue("p_button_id", ButtonId).DbType = DbType.AnsiString

        OracleCommandProcessor.ExecuteNonQueryInContext(cmd)

        retVal = IIf(DbUtilities.Nvl(cmd.Parameters("p_return_val").Value, "N") = "Y", True, False)


    Catch ex As Exception
        retVal = "Error while processing Validation Check"
    Finally
        cmd = Nothing
    End Try

    Return retVal
End Function
IIf(DbUtilities.Nvl(cmd.Parameters(“p\u return\u val”).Value,“N”)=“Y”,True,False)
在这一行
“p\u return\u val”)。值在windows 10中总是以
Null
的形式出现。但在Windows7中,它将返回
Y


IIf(DbUtil.Nvl(cmd.Parameters(“p\u return\u val”).Value,“N”)=“Y”,True,False)
在这一行
“p\u return\u val”)。值在windows 10中总是以
Null
的形式出现。但在windows 7中,它将返回
Y
,并基于此显示按钮可见的true或False。

尝试此
oraclecommand.bindbyname=true
。我觉得你的参数有问题。顺便问一下,这是
system.data.oracleclient.oraclecondm
还是ODP?这是system.data.oracleclient.oraclecondm。BindbyName不是system.data.oracleclient.oraclecommand的成员。然后将第一个参数移动到最后一个位置,查看它的作用。如果您阅读MS文档,他们会反对
system.data.oracleclient
。您应该使用ODP-
Oracle.ManagedDataAccess
。多年来她一直这样说。这可能是你的问题-微软没有更新它在Win10上工作的东西
BindbyName
是ODP的一个特性。另外,不要使用
IIF
,使用
If(,)
。特别是在这种情况下,您只会浪费计算能力。Do
retVal=DbUtilities.Nvl(cmd.Parameters(“p\u return\u val”).Value,“N”)=“Y”