1

我有这段代码:

private string getTime(int time)
{
    TimeSpan t = TimeSpan.FromSeconds(time);
    return string.Format("{0:D2}:{1:D2}", t.Hours, t.Minutes, t.Seconds, t.Milliseconds);
}

稍后在我的应用程序中,这部分代码:

dataGridView_Trips.Rows[i].Cells["top_Tijd"].Value = (string)getTime(routeInfo[0]);

无论我如何或尝试将其转换为 a string,一旦它尝试设置它的 ValueCells["top_Tijd"]都会给我一个错误,在这种情况下,它会getTime返回一个字符串"17:46"并告诉我这不是正确的十进制格式?

它试图将其设置为强,但告诉我它不是正确的十进制值,为什么?

编辑1:

尝试添加 dataGridView_Trips.Columns["top_Tijd"].ValueType = typeof(string); 无济于事。

编辑2:

试图删除 getTime 并粘贴到硬编码的“测试”中,并声称即使在设置它的 valuetype 之后也需要十进制。

编辑3:

这是格式行为的屏幕截图...(无格式。) 在此处输入图像描述

4

3 回答 3

2

我遇到了完全相同的问题:我已经解决了它更改绑定到 dgv 列的 MS Access 数据库列中的值类型。

您不能直接从 Visual Studio 更改绑定列的类型:如果您的列设置了 DataPropertyName,则它是您必须更改的 Db 列的名称。

如果您无法编辑数据库,则必须将列的值复制到新的未绑定列中。

于 2014-03-20T15:15:39.907 回答
1

因为"17:46"不是小数。您的 DataGridView 可能将该列定义为十进制。你应该把它改成TimeSpanString或者其他更合适的

于 2013-05-06T10:12:35.950 回答
0

有很多事情我会在这里做不同的事情。首先-您要使用的格式是:“h:mm”或“HH:mm”供您使用。其次 - 使用 DateTime.ToString(yourFormat) 格式化您的日期时间。在此处查看文档:http: //msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-05-06T10:11:03.477 回答