仅在DataGridView的列中显示日期

时间:2016-06-29 10:03:24

标签: c# winforms date datagridview

我在 MySQL 数据库中有一个日期商店,其格式为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()

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;
    }

1 个答案:

答案 0 :(得分:1)

TaW是对的。设置DataType:replace

dt.Columns.Add(key);

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

表示所需的列。