vb.net - 从 MySQL 创建的数据表中将日期添加到 datagridview 作为 dd-MM-yyyy
问题描述
我有一个 web 服务,它从表中选择 * 并填充数据表,然后将该数据表返回到应用程序并绑定为 datagridview 的数据源。我的问题是返回的几个日期列被格式化为 yyyy-MM-dd 包括时间。
Datagridview DefaultCellStyle.Format也不行,因为我创建rdlc报表的时候,日期格式还是yyyy-MM-dd。
如何在将日期添加到 Web 服务上的数据表之前将其格式化为 dd-MM-yyyy?目前它只是选择 * 并用所有内容填充数据表并返回它。
语言是 VB.Net
解决方案
这一点没有意义:
我有一个 web 服务,它从表中选择 * 并填充数据表,然后将该数据表返回到应用程序并绑定为 datagridview 的数据源。我的问题是返回的几个日期列被格式化为 yyyy-MM-dd 包括时间。
日期列(即数据类型为 DATE 或 DATETIME 的列)以某种内部数字表示形式保存日期表示。它没有格式;您的计算机具有日期格式。您在调试器/UI 中查看数据表并查看 yyyy-MM-dd,因为这是调试器在显示日期之前将日期格式化的原因,可能参考了系统区域设置/区域性设置。您的 Web 服务向您返回了一个包含日期类型列的数据表,并且它们是无格式的。
如果您希望它们具有特定格式,则将格式设置为 datagridview 列的单元格样式的属性:
dataGrid.Columns(x).DefaultCellStyle.Format = "dd-MM-yyyy"
Datagridview DefaultCellStyle.Format也不行,因为我创建rdlc报表的时候,日期格式还是yyyy-MM-dd。
这是正确的; 因为您将数据表传递给 RDLC,而不是 datagridview。报告的工作是将数据从表格中的日期时间适当地格式化为适合报告正在运行的区域的字符串。例如:
=Format(whatever!SomeDateColumn,"dd-MM-yyyy")
请不要让网络服务将日期格式化为字符串;如果后端低级别层将所有内容字符串化为某种固定格式,那么它会使其他地方的所有内容都变得更加困难,而这应该是前端/表示层的工作
推荐阅读
- html - Angular Material:Stepper 向前移动,尽管需要选择
- plone - 多次通知自定义事件以发送电子邮件不起作用
- asp.net-mvc - 当我添加参数时,@Html.ActionLink 的 ASP.NET MVC 路由无法正常工作
- php - imap_body 工作不正确?
- spring - 启动 Spring Boot 应用程序的警告
- python - 基于系列的规则对 Pandas 数据框中的数据进行排序
- python - 嵌套循环和使用 iterrows 索引 pandas 数据帧
- python - Python utf8 编解码器无法解码位置 103 中的字节 0x80:无效的起始字节
- spring - 如何避免在 Spring jpa DATA 中创建依赖项目实体表?
- elasticsearch - 查询中的三个条件