Je suis complètement nouveau sur Blazor et je viens de me lancer dans un projet.

J'utilise ORM pour extraire des données d'une base de données. Pour une raison quelconque, lorsque je renvoie les données, elles sont affichées sous la forme 1/1/0001 12: 00: 00Am

C'est ainsi que je récupère les données de DB

string sql = "Select top Value1, Value2, Value_DateTime from DBO.T_1";
return _db.LoadData<Model1, dynamic>(sql, new { });

Et c'est ainsi que j'essaye de remplir une table avec une valeur, dans la page .Razor

<td>@Value.Value_DateTime</td>

Toutes les autres données s'affichent correctement. Lorsque j'exécute la requête dans SSMS, les dates sont correctes.

ÉDITER:

 Task<List<T>> LoadData<T, U>(string sql, U parameters);
0
Koosh 18 août 2020 à 22:23

2 réponses

Meilleure réponse

La date Blazor C # s'affiche comme 1/1/0001 12: 00: 00Am

Vous affichez un DateTime qui n'a pas été initialisé. Quelque part dans votre code, vous ne déplacez tout simplement pas les données de la base de données dans le champ que vous affichez ensuite. Malheureusement, votre code est si non standard que je ne le déboguerai pas - en particulier à cause d'une utilisation inutile de la dynamique - mais quelque part, vous faites une erreur.

0
TomTom 18 août 2020 à 19:39

Le problème peut être une incompatibilité entre le type de données SQL DateTime et la structure C # System.DateTime. Il existe une autre version: System.Data.SqlTypes.SqlDateTime struct - le passage à cette structure dans votre modèle devrait ™ résoudre votre problème.

Voici le lien vers la documentation: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqltypes.sqldatetime?view=dotnet-plat-ext-3.1

Extrait pertinent:

... La structure SqlDateTime a une structure de données sous-jacente différente de son type .NET Framework correspondant, DateTime ...

1
CoolBots 18 août 2020 à 19:39