Индекс находился за пределами массива в asp.net mvc, связанном с базой данных oracle - PullRequest
1 голос
/ 20 июня 2019

Я столкнулся со странной проблемой на веб-сайте asp.net mvc, которая связана с базой данных oracle и развернута на IIS.Когда я добавляю новое поле в таблицу базы данных Oracle (не изменяя ничего в существующей структуре таблицы), веб-сайт asp.net, работающий на IIS, вызывает исключение в методе, который извлекает данные из этой таблицы.

Я простодобавление нового поля в таблицу базы данных Oracle с помощью Oracle SQL Developer.Я могу понять, что схема таблиц изменяется таким образом, но не могу понять, как она влияет на существующие результаты SQL-запросов.Я пытался сделать то же самое в базе данных SQL Server, но она прекрасно работает.

Ниже приведен код, который отображает данные из базы данных Oracle.Получение исключения в строке с кодом "sda.Fill (dt);"

 using Oracle.ManagedDataAccess.Client;

 OracleConnection Ocon = null;   
 string oradb = System.Configuration.ConfigurationManager.ConnectionStrings["OracleDBConnStr"].ConnectionString;
Ocon = new Oracle.ManagedDataAccess.Client.OracleConnection(oradb); 
string str = "select * from TABLE_NAME where  TRIM(STATUS)!=1 and TRIM(STATUS)!=2";
OracleDataAdapter sda = new OracleDataAdapter(str, Ocon);
DataTable dt = new DataTable();
sda.Fill(dt);

Ошибка сервера в приложении '/'.

Index was outside the bounds of the array.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.<br>
Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.<br>
Source Error: <br>
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.<br>
Stack Trace: <br>
[IndexOutOfRangeException: Index was outside the bounds of the array.]
   Oracle.ManagedDataAccess.Client.OracleDataReader.GetMinSchemaTable() +3066
   Oracle.ManagedDataAccess.Client.OracleDataReader.set_IsFillReader(Boolean value) +102
   Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +376
   System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +141
   TradingAutomationUI.Controllers.OtherAccountTransactionController.getbankTransectionCustom(String Query, String searchPerm) +255
   TradingAutomationUI.Controllers.OtherAccountTransactionController.CustomEntriesView(Nullable`1 id) +347
   lambda_method(Closure , ControllerBase , Object[] ) +145
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +229
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +35
   System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +39
   System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +77
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +42
   System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +72
   System.Web.Mvc.Async.<>c__DisplayClass48.<InvokeActionMethodFilterAsynchronouslyRecursive>b__41() +387
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
   System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +38
   System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +188
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +73
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +52
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +39
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +43
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +73
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +602
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +195
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +128<br>
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3282.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...