C# 使用LINQ获取日期时间值

C# 使用LINQ获取日期时间值,c#,linq,C#,Linq,我是Linq的新手,所以这个简单的问题让我陷入困境:我只想从查询中获取datetime值: var queryW = (from r in aTable.AsEnumerable() where r.Field<string>("Department") == "Workshop" select r.Field<DateTime>("LastCall")); 这导致了例外情况: Addi

我是Linq的新手,所以这个简单的问题让我陷入困境:我只想从查询中获取datetime值:

  var queryW = (from r in aTable.AsEnumerable()
                    where r.Field<string>("Department") == "Workshop"
                    select r.Field<DateTime>("LastCall"));
这导致了例外情况:

Additional information: Unable to cast object of type 'System.Data.EnumerableRowCollection`1[System.DateTime]' to type 'System.IConvertible'.
我也试过了

  DateTime AliveW = Convert.ToDateTime(queryW.FirstOrDefault<DateTime>);
   DateTime AliveW = Convert.ToDateTime(queryW.First<DateTime>);
DateTime AliveW=Convert.ToDateTime(queryW.FirstOrDefault);
DateTime AliveW=Convert.ToDateTime(queryW.First);

如果运气不好

您现有的查询将返回一个
IEnumerable
,即可以枚举/迭代的
日期时间
的集合,但您尝试只获取一个
日期时间
。你只想要第一个吗

var queryW = (from r in aTable.AsEnumerable()
                where r.Field<string>("Department") == "Workshop"
                select r.Field<DateTime>("LastCall")).First();
var queryW=(来自aTable.AsEnumerable()中的r)
其中r.Field(“部门”)=“车间”
选择r.Field(“LastCall”)).First();

请注意,如果集合中没有
DateTime
,这将引发异常,在这种情况下,您可能需要使用
FirstOrDefault()
,它将返回
默认值(DateTime)
如果集合不包含任何
DateTime
s,则现有查询将返回一个
IEnumerable
,即可以枚举/迭代的
DateTime
s集合,但您试图只获取一个
DateTime
。你只想要第一个吗

var queryW = (from r in aTable.AsEnumerable()
                where r.Field<string>("Department") == "Workshop"
                select r.Field<DateTime>("LastCall")).First();
var queryW=(来自aTable.AsEnumerable()中的r)
其中r.Field(“部门”)=“车间”
选择r.Field(“LastCall”)).First();

请注意,如果集合中没有
DateTime
,这将引发异常,在这种情况下,您可能需要使用
FirstOrDefault()
,它将返回
默认值(DateTime)
如果集合不包含任何
DateTime
s,则现有查询将返回一个
IEnumerable
,即可以枚举/迭代的
DateTime
s集合,但您试图只获取一个
DateTime
。你只想要第一个吗

var queryW = (from r in aTable.AsEnumerable()
                where r.Field<string>("Department") == "Workshop"
                select r.Field<DateTime>("LastCall")).First();
var queryW=(来自aTable.AsEnumerable()中的r)
其中r.Field(“部门”)=“车间”
选择r.Field(“LastCall”)).First();

请注意,如果集合中没有
DateTime
,这将引发异常,在这种情况下,您可能需要使用
FirstOrDefault()
,它将返回
默认值(DateTime)
如果集合不包含任何
DateTime
s,则现有查询将返回一个
IEnumerable
,即可以枚举/迭代的
DateTime
s集合,但您试图只获取一个
DateTime
。你只想要第一个吗

var queryW = (from r in aTable.AsEnumerable()
                where r.Field<string>("Department") == "Workshop"
                select r.Field<DateTime>("LastCall")).First();
var queryW=(来自aTable.AsEnumerable()中的r)
其中r.Field(“部门”)=“车间”
选择r.Field(“LastCall”)).First();

请注意,如果集合中没有
DateTime
,这将引发异常,在这种情况下,您可能需要使用
FirstOrDefault()
,它将返回
默认值(DateTime)
在集合不包含任何
日期时间的情况下。

您的linq查询不会像您所想的那样返回单个值。错误告诉您正在获取行集合类型的可枚举项。如果您确实知道查询应该返回一个值,那么可以在查询末尾添加.Single()或.First()调用。

您的linq查询不会像您所想的那样返回一个值。错误告诉您正在获取行集合类型的可枚举项。如果您确实知道查询应该返回一个值,那么可以在查询末尾添加.Single()或.First()调用。

您的linq查询不会像您所想的那样返回一个值。错误告诉您正在获取行集合类型的可枚举项。如果您确实知道查询应该返回一个值,那么可以在查询末尾添加.Single()或.First()调用。

您的linq查询不会像您所想的那样返回一个值。错误告诉您正在获取行集合类型的可枚举项。如果您确定查询应该返回一个值,则可以在查询末尾添加.Single()或.First()调用。

您可以使用类似的方法

var queryW = (from r in aTable.AsEnumerable()
            where r.Field<string>("Department") == "Workshop"
            select r.Field<DateTime>("LastCall")).FirstorDefault();
 DateTime usTime = (DateTime)(aTable.AsEnumerable().Where(r=>r.Name=="Reporter").Select(r => r.UsTime).First());

试试这个,如果它有效,就把它标记为答案。

你可以使用类似的东西

 DateTime usTime = (DateTime)(aTable.AsEnumerable().Where(r=>r.Name=="Reporter").Select(r => r.UsTime).First());

试试这个,如果它有效,就把它标记为答案。

你可以使用类似的东西

 DateTime usTime = (DateTime)(aTable.AsEnumerable().Where(r=>r.Name=="Reporter").Select(r => r.UsTime).First());

试试这个,如果它有效,就把它标记为答案。

你可以使用类似的东西

 DateTime usTime = (DateTime)(aTable.AsEnumerable().Where(r=>r.Name=="Reporter").Select(r => r.UsTime).First());

尝试此方法,如果有效,则将其标记为答案

queryy
DateTime
对象的集合。选择该集合中的一项,而不是隐藏集合。
First()
可能是一个很好的起点。
queryW
DateTime
对象的集合。选择该集合中的一项,而不是隐藏集合。
First()
可能是一个很好的起点。
queryW
DateTime
对象的集合。选择该集合中的一项,而不是隐藏集合。
First()
可能是一个很好的起点。
queryW
DateTime
对象的集合。选择该集合中的一项,而不是隐藏集合。
First()
可能是一个很好的起点。感谢您提供的信息,我正试图使用.Firstordefault,但我用错了。我猜这就是问题被降级的原因:/谢谢你提供的信息,我试图使用。Firstordefault,但我用错了。我猜这就是问题被降级的原因:/谢谢你提供的信息,我试图使用。Firstordefault,但我用错了。我猜这就是问题被降级的原因:/谢谢你提供的信息,我试图使用。Firstordefault,但我用错了。我猜这就是问题的原因