问题描述
我对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中运行查询时,它会正确显示日期。
编辑:
Task<List<T>> LoadData<T,U>(string sql,U parameters);
解决方法
问题可能是SQL DateTime
数据类型和C#System.DateTime
结构之间的不兼容。还有一个替代版本:System.Data.SqlTypes.SqlDateTime
结构-在您的模型中切换到该结构应该™可以解决您的问题。
相关摘录:
,...
SqlDateTime
结构与其相应的.NET Framework类型DateTime
...具有不同的基础数据结构。
Blazor C#日期显示为1/1/0001 12:00:00Am
您正在显示尚未初始化的DateTime。在代码中的某个位置,您只是没有将数据从数据库移到随后显示的字段中。令人遗憾的是,您的代码是如此的非标准,我不会对其进行调试-尤其是由于不必要使用动态特性-但是您在某个地方出错了。