繁体   English   中英

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

[英]Blazor C# date shows as 1/1/0001 12:00:00Am

我对 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 { });

这就是我尝试用值填充表的方式,in.Razor 页面

<td>@Value.Value_DateTime</td>

所有其他数据均正确显示。 当我在 SSMS 中运行查询时,它会显示正确的日期。

编辑:

 Task<List<T>> LoadData<T, U>(string sql, U parameters);

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

这是文档链接: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqltypes.sqldatetime?view=dotnet-plat-ext-3.1

相关摘录:

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

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

您正在显示尚未初始化的 DateTime。 在您的代码中的某处,您根本没有将数据从数据库移动到您随后显示的字段中。 可悲的是,您的代码非常不标准,我不会调试它 - 特别是因为不需要使用动态 - 但在某个地方你犯了一个错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM