Database 捕获System.InvalidOperationException HResult=-2146233079消息=内部.Net Framework数据提供程序错误30
我在executereader行中出错。该错误显示内部.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
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',现在它工作得非常好。再次感谢你