2014-10-07 47 views
0

这是我的代码指定的转换是无效的例外

var result = (from row1 in table.AsEnumerable() 
          join row2 in tabelPopup.AsEnumerable() 
          on row1.Field<string>("CallID") equals 
          row2.Field<string>("callID") 
          where row1.Field<string>("Direction") == "I" 
          select new 
          { 
           Agent = row1.Field<string>("Agent"), 
           StartTime = row1.Field<DateTime>("StartTime"), 
           Reason = row2.Field<string>("Reason") 
          }); 

其中tabletablePopup是数据表变量。

我得到这个异常:

Specified cast is not valid 

这个代码:

new 
          { 
           Agent = row1.Field<string>("Agent"), 
           StartTime = row1.Field<DateTime>("StartTime"), 
           Reason = row2.Field<string>("Reason") 
          } 
+0

您确定列定义正确吗?即Agent是字符串,StartTime是日期时间,Reason是字符串? – artm 2014-10-07 10:43:48

+1

显然,其中一个字段包含一个类型的值,这不是'Field '方法所期望的(假设它只是'(T)row [fieldName]')。 – Dennis 2014-10-07 10:45:55

+0

@artm你是对的,'datetime'应该是'string',请输入一个答案以接受它 – 2014-10-07 10:46:43

回答

2

确保您的列定义与您在row1.field中使用的类型匹配<>。即Agent是字符串,StartTime是日期时间,Reason是字符串。这可能是由于StartTime不是日期时间类型。

1

大概StartTime是不是从DateTime类型。因为你收到这个例外。尝试转换它。如果这是正确的,你应该将其转换为DateTime或者只是检索字符串值。

+0

+1给你,但'artm'找到你之前的解决方案请原谅我请不要接受你的回答+1 – 2014-10-07 10:47:16

+0

@MarcoDinatsoli不用担心:) – mybirthname 2014-10-07 10:48:00

相关问题