【问题标题】:DeafultcCellStyle format not working on unbound DataGridView C# WinformsDeafultcCellStyle 格式不适用于未绑定的 DataGridView C# Winforms
【发布时间】:2020-02-18 23:24:29
【问题描述】:

我有一个未绑定的 DataGridView,我用 SQL 数据库中的数据填充它。数据库中的一列是“日期时间”类型。

在我的 winforms 应用程序的加载事件中,我使用下面的代码将列格式化为仅显示日期时间列的日期部分。但是它显示了完整的日期时间。我想要 18/02/2020,它显示的是 18/02/2020 00:00:00

dgv.Columns["Date"].DefaultCellStyle.Format = "dd/MM/yyyy"
dgv.Columns["Date"].ValueType = typeof(System.DateTime);

如何格式化列以仅显示日期时间列的日期部分?

【问题讨论】:

  • 我也将上面的代码添加到 DGV 单元格格式化事件中,但仍然无法应用格式。

标签: c# datagridview


【解决方案1】:

我在代码中的 gridview 中添加了一些数据,并尝试了上面的代码。 DefaultCellStyle.Format 效果很好。

这意味着您可能需要检查从 SQL 数据库中检索数据的方式。例如,您可能会用字符串而不是“日期”来填充网格。

【讨论】:

  • 感谢您的回复。这是我的代码: // 从数据库中检索列信息。 command.CommandText = "SELECT * FROM " + tableName; SqlDataAdapter 适配器 = new SqlDataAdapter();适配器.SelectCommand = 命令;数据表表 = 新数据表(); table.Locale = System.Globalization.CultureInfo.InvariantCulture; adapter.FillSchema(table, SchemaType.Source); columnsValue = table.Columns;
  • 这对我来说效果很好:SqlCommand command = new SqlCommand(); command.Connection = cnn; command.CommandText = "SELECT * FROM " + tableName; SqlDataAdapter adapter = new SqlDataAdapter(command); DataSet ds = new DataSet(); adapter.Fill(ds, "sourceTable"); dgv.DataSource = ds.Tables[0]; dgv.Columns["Date"].DefaultCellStyle.Format = "dd/MM/yyyy";
猜你喜欢
  • 2015-01-23
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-21
  • 2011-09-15
  • 2010-09-12
相关资源
最近更新 更多