2

我从数据库中检索了一个表,其中包含 sql server 中“时间”类型的列,我尝试将其分配给 DateTime 变量,但我收到此错误:System.InvalidCastException:指定的转换无效。

这是我的 C# 代码:

DateTime StartTime = (DateTime)dt.Rows[i]["startTime"];

知道“startTime”列的类型是“time”,我可以在数据库中更改它。有什么帮助吗??

4

2 回答 2

5
DateTime StartTime = Convert.ToDateTime(dt.Rows[i]["startTime"].ToString());

如果你知道它可能是空的..

DateTime StartTime = (dt.Rows[i]["startTime"] == DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(dt.Rows[i]["startTime"].ToString()));
于 2012-05-08T20:48:19.370 回答
4

您应该能够将其转换为TimeSpan

var startTime = dt.Rows<TimeSpan>("startTime");
于 2012-05-08T20:40:15.727 回答