C# Blazor C日期显示为1/1/0001 12:00:00Am

C# Blazor C日期显示为1/1/0001 12:00:00Am,c#,blazor,C#,Blazor,我对Blazor完全陌生,刚刚投入一个项目 我正在使用ORM从数据库中提取数据。由于某种原因,当我返回数据时,它显示为1/1/0001 12:00:00Am 这就是我从数据库中获取数据的方式 string sql = "Select top Value1, Value2, Value_DateTime from DBO.T_1"; return _db.LoadData<Model1, dynamic>(sql, new { }); 这就是我试图在.Razor页

我对Blazor完全陌生,刚刚投入一个项目

我正在使用ORM从数据库中提取数据。由于某种原因,当我返回数据时,它显示为1/1/0001 12:00:00Am

这就是我从数据库中获取数据的方式

string sql = "Select top Value1, Value2, Value_DateTime from DBO.T_1";
return _db.LoadData<Model1, dynamic>(sql, new { });
这就是我试图在.Razor页面中用值填充表的方式

<td>@Value.Value_DateTime</td>
所有其他数据显示正确。当我在SSMS中运行查询时,它包含正确的日期

编辑:


问题可能是SQL DateTime数据类型与C System.DateTime结构之间不兼容。还有一个替代版本:System.Data.SqlTypes.SqlDateTime结构-切换到模型中的该结构应该™ 解决你的问题

以下是文档链接:

相关摘录:

…SqlDateTime结构具有与其对应的.NET Framework类型DateTime不同的底层数据结构

Blazor C日期显示为1/1/0001 12:00:00Am


您正在显示尚未初始化的日期时间。在代码的某个地方,您只是没有将数据从数据库移动到随后显示的字段中。遗憾的是,您的代码太不标准了,我不会调试它——特别是因为不必要地使用了动力学——但在某些地方您犯了一个错误。

什么是_db.LoadData?Model1是什么?SQL中存储date datetime、smalldatetime等字段的字段数据类型是什么?即datetime.MinValue;表示加载或映射过程跳过了datetime,将其保留为type@CoolBots-SQL中的Datetime,在我的模型中,我使用Datetime作为well@CaiusJard知道为什么吗?所有其他字段,恰好是字符串,都正确显示了啊,你知道这基本上是显示了一个未初始化的日期时间吗?@TomTom是的,但我认为原因是模型中使用了错误的类型。当然,它可以是其他的东西-正如您所提到的,调试代码是。。。这将是相当困难的。我更新了我的答案,稍微少了一点自信,哈哈,因为我无法证明正确性-OP需要在他们的最后研究一下。我正在youtube上跟随IamTimCorey的教程。他有Blazor教程的介绍。我基本上遵循他所展示的相同方法,使用简洁的方式,但当我尝试选择datetime字段时,它会出现1/1/0001,这很有趣。这一定是我见过的最糟糕的教程,至少在数据访问方面是如此。我基本上从不使用动态。大概十年一次吧。这看起来很严重,输出的字段根本没有初始化。在调试器中逐步使用。
 Task<List<T>> LoadData<T, U>(string sql, U parameters);