#

ASP Error: System.InvalidOperationException, An exception occurred while reading a database value

 

Fehlermeldung in ASP.Net

System.InvalidOperationException: 'An exception occurred while reading a database value for property 'Model__Artikel.dtEdit'.

The expected type was 'System.DateTime' but the actual value was null.'

 

 

 

Der Fehler tritt auf, wenn man eine Liste laden möchte, in welcher Werte mit Null ausgefüllt sind

List<Model__Artikel> artikel = _context.tbl_Artikel.ToList();

 

 

Im MVC Controller wird der Fehler aufgeworfen

 

Null-Werte

Ursache: einige der Werte sind mit Null eingegeben oder wurden nicht eingegeben.

 

Lösung:

Man muss im Model die Variable Nullable machen, indem man ein Fragezeichen an das Ende setzt

Also Datum definiert mit

public DateTime?

 

Im Code Beispiel der MVC Model

[Display(Name = "Date Edit")]

[DisplayFormat(ApplyFormatInEditMode =true, DataFormatString = "{0:yyyy-MM-dd HH:mm}")]

public DateTime? dtEdit { get; set; }

 

 

Komplettee Fehlermeldung

System.InvalidOperationException occurred

  HResult=0x80131509

  Message=An exception occurred while reading a database value for property 'Model__Artikel.dtEdit'. The expected type was 'System.DateTime' but the actual value was null.

  Source=<Cannot evaluate the exception source>

  StackTrace:

   at Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.ThrowReadValueException[TValue](Exception exception, Object value, IPropertyBase property)

   at Microsoft.EntityFrameworkCore.Metadata.Internal.EntityMaterializerSource.TryReadValue[TValue](ValueBuffer valueBuffer, Int32 index, IPropertyBase property)

   at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.UnbufferedEntityShaper`1.Shape(QueryContext queryContext, ValueBuffer valueBuffer)

   at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.BufferlessMoveNext(Boolean buffer)

   at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)

   at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()

   at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.<_TrackEntities>d__17`2.MoveNext()

   at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()

   at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable)

   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)

   at ArtikelWeb.Controllers.ArtikelController.Index() in C:\_Daten\Desktop\VS_Projects\Web\Demo\ArtikelWeb\ArtikelWeb\Controllers\ArtikelController.cs:line 28

   at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)

   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()

 

Inner Exception 1:

NullReferenceException: Object reference not set to an instance of an object.

 

Mobile

.

123movies