我对Blazor完全陌生,刚刚投入到一个项目中。
我正在使用ORM从数据库中提取数据。由于某种原因,当我返回数据时,它显示为1/1/0001 12:00:00Am
这就是我从DB 获取数据的方式
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);
问题可能是SQLDateTime
数据类型和C#System.DateTime
结构之间不兼容。有一个替代版本:System.Data.SqlTypes.SqlDateTime
结构-切换到Model中的那个结构应该™解决你的问题。
以下是文档链接:https://learn.microsoft.com/en-us/dotnet/api/system.data.sqltypes.sqldatetime?view=dotnet-plat-ext-3.1
相关摘录:
。。。
SqlDateTime
结构与其对应的.NET Framework类型DateTime
具有不同的底层数据结构。。。
Blazor C#日期显示为1/10000112:00:00Am
您显示的DateTime尚未初始化。在代码的某个地方,您只是没有将数据从数据库移动到随后显示的字段中。遗憾的是,你的代码太不标准了,我不会调试它——尤其是因为不需要使用动力学——但在某些地方你会犯错误。