2016-06-29 35 views
1

我有一个日期存储在MySQL数据库的格式为Datetime在DataGridView列中显示日期

我想把日在一个DataGridView但是当我尝试,我得到的日期与时间如下,是这样的:

29/06/2016 12:01:21 

我试图找到日期直接从的MySQL使用查询DATE()功能,但它仍然无法正常工作,因为在我的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()

public static DataTable ToDataTable(this IEnumerable<dynamic> items) 
    { 
     var data = items.ToArray(); 
     if (!data.Any()) return null; 

     var dt = new DataTable(); 
     foreach (var key in ((IDictionary<string, object>) data[0]).Keys) 
      dt.Columns.Add(key); 

     foreach (var d in data) 
      dt.Rows.Add(((IDictionary<string, object>) d).Values.ToArray()); 

     return dt; 
    } 
+0

http://stackoverflow.com/questions/5050102/convert-datetime-to-date-format-dd-mm-yyyy –

+0

@ OffirPe'er - 我使用DataBinding将我的“日期”链接到我的DataGridView。我从我的数据库中读取日期并将其放入datagridview中。 –

+1

请显示代码 – Mairaj

回答

1

TAW的权利。设置数据类型:与

dt.Columns.Add(key, typeof(DateTime)); 

为所需的列替换

dt.Columns.Add(key); 

+0

我使用数据源,所以我不创建manualy的列。 我尝试使用'datagrid.Columns [1] .ValueType = typeof(DateTime);'但它不起作用 –

+0

这不是关于DGV的列,而是关于DataTable的列,所以我认为这应该工作! – TaW

+0

@TaW - 我按照建议,在将列表转换为'DataTable'的函数中,我进行了一次审计,验证数据是否属于'DateTime'类型,在这种情况下强加列,同时创建 –