C# 在DataGridView的列中仅显示日期
我在MySQL数据库中有一个date存储,格式为C# 在DataGridView的列中仅显示日期,c#,winforms,date,datagridview,C#,Winforms,Date,Datagridview,我在MySQL数据库中有一个date存储,格式为Datetime 我只想将日期放入一个DataGridView中,但当我尝试获取以下小时的日期时,类似于: 29/06/2016 12:01:21 我尝试使用date()函数直接从MySQL查询中查找日期,但仍然不起作用,因为在我的DataGridView中,我看到的日期格式如下: 29/06/2016 00:00:00 最后,我尝试使用辅助代码来设置列,但没有结果 dataGridView.Columns[1].DefaultCellStyl
Datetime
我只想将日期放入一个DataGridView
中,但当我尝试获取以下小时的日期时,类似于:
29/06/2016 12:01:21
我尝试使用date()
函数直接从MySQL查询中查找日期,但仍然不起作用,因为在我的DataGridView
中,我看到的日期格式如下:
29/06/2016 00:00:00
最后,我尝试使用辅助代码来设置列,但没有结果
dataGridView.Columns[1].DefaultCellStyle.Format = "dd/MM/yyyy";
我使用DataSource
将我的数据“链接”到我的DataGridView
代码如下:
var dataTable = listOfResult.ToDataTable(); //ToDataTable() Function that convert List into DataTable
dataGridView.DataSource = dataTable;
dataGridView.Columns[1].DefaultCellStyle.Format = "dd/MM/yyyy";
listOfResult
是这样一个动态列表,里面有所有的日期
函数ToDataTable()
公共静态数据表到数据表(此IEnumerable items)
{
var data=items.ToArray();
如果(!data.Any())返回null;
var dt=新数据表();
foreach(变量键入((IDictionary)数据[0]).Keys)
dt.Columns.Add(键);
foreach(数据中的var d)
Add(((IDictionary)d).Values.ToArray());
返回dt;
}
TaW是对的。设置数据类型:replace
dt.Columns.Add(key);
与
对于所需的列。@OffirPe'er-我使用数据绑定将我的“日期”链接到我的DataGridView。我从数据库中读取日期,并将其放入datagridview。请显示代码您是否检查了
ValueType=typeof(DateTime)代码>用于该列?否则,格式将以静默方式失败。另外:在加载数据之前尝试设置这些属性。另外:您在哪里设置DataTable列的数据类型???@LorenzoBelfanti我将问题标记为链接文章的副本。原因正是因为列的类型不是DateTime
。使用Columns.add(“column name”)
添加列时,列的类型将为string
,因此格式将不适用。要解决这个问题,您可以使用linked post中的方法,或者简单地修复您的方法以支持属性类型。如果您对答案有任何疑问,请告诉我:)我使用DataSource,所以我不会手动创建列。我尝试使用datagrid.Columns[1].ValueType=typeof(DateTime)代码>但它不起作用这不是关于DGV的列,而是关于DataTable的列,所以我认为这应该起作用@TaW-我按照建议做了,在将列表转换为DataTable
的函数中,我进行了一次审核,验证数据是否属于DateTime
类型,在这种情况下,在创建列的同时
dt.Columns.Add(key);
dt.Columns.Add(key, typeof(DateTime));