Database 捕获System.InvalidOperationException HResult=-2146233079消息=内部.Net Framework数据提供程序错误30

Database 捕获System.InvalidOperationException HResult=-2146233079消息=内部.Net Framework数据提供程序错误30,database,vb.net,oracle,oracle11g,Database,Vb.net,Oracle,Oracle11g,我在executereader行中出错。该错误显示内部.NET Framework数据提供程序错误30 我尝试使用的代码是: Try Dim ss As String Dim oradb As String = "db credentials" Dim conn As New OracleConnection(oradb) conn.Open() Dim cmd As New OracleCommand

我在executereader行中出错。该错误显示内部.NET Framework数据提供程序错误30

我尝试使用的代码是:

    Try
        Dim ss As String
        Dim oradb As String = "db credentials"
        Dim conn As New OracleConnection(oradb)
        conn.Open()
        Dim cmd As New OracleCommand
        cmd.Connection = conn
        cmd.CommandText = "select m.branch_code from abc m where m.pfno='123'"
        cmd.CommandType = CommandType.Text
        Dim dr As OracleDataReader = cmd.ExecuteReader()
        dr.Read()
        ss = dr.Item("branch_code")
        conn.Dispose()
    Catch ex As Exception           
        Throw ex
    End Try  
详细的错误报告如下所示:

System.InvalidOperationException was caught  
HResult=-2146233079
 Message=Internal .Net Framework Data Provider error 30.
 Source=System.Data.OracleClient
StackTrace:
   at System.Data.ProviderBase.DbBuffer.Validate(Int32 offset, Int32 count)
   at System.Data.ProviderBase.DbBuffer.PtrToStringUni(Int32 offset)
   at System.Data.OracleClient.OciHandle.PtrToString(NativeBuffer buf)
   at System.Data.OracleClient.OracleInternalConnection.get_ServerVersion()
   at System.Data.OracleClient.OracleInternalConnection.get_ServerVersionAtLeastOracle8()
   at System.Data.OracleClient.OracleConnection.get_ServerVersionAtLeastOracle8()
   at System.Data.OracleClient.OracleColumn.Describe(Int32& offset, OracleConnection connection, OciErrorHandle errorHandle)
   at System.Data.OracleClient.OracleDataReader.FillColumnInfo()
   at System.Data.OracleClient.OracleDataReader..ctor(OracleCommand command, OciStatementHandle statementHandle, String statementText, CommandBehavior commandBehavior)
   at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
   at Mylogin.GetMapIDEfftdate() in D:\Projects\BranchManager 22-11-2018\BranchManager\Mylogin.aspx.vb:line 247
内部异常:


我正在使用Oracle数据库客户端11g R2。

在我的例子中,oracleDB中已经启用了unicode功能,但我在连接字符串中再次提到了
unicode=“TRUE”
。所以当我移除它时,.Net工作正常


因此,您应该与您的DB团队一起检查是否对DB进行了任何新的更新。

如果您不在发生此错误的地方发布代码,我们将如何帮助您?这不是猜谜游戏。请详细说明您的问题,以便其他用户能够理解和帮助您。你的问题,添加代码,张贴在评论中,使之无法访问。请帮助我在这方面。谢谢你Arjun。我和我的DB小组核实过,他们说的和你说的一样。所以我从我的连接字符串中删除了unicode='true',现在它工作得非常好。再次感谢你