Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么IEnumerable的行为异常_C#_Linq - Fatal编程技术网

C# 为什么IEnumerable的行为异常

C# 为什么IEnumerable的行为异常,c#,linq,C#,Linq,我有一个代码如下: var userTest = from u in userUpdated select (u.Field<string>("Emp Birthdate")); var userTest1 = from u in original select (u.Field<string>("Date of Birth")); var用户测试= 来自用户更新中的u 选择(u.Field(“Emp生日”); var userTes

我有一个代码如下:

var userTest =
    from u in userUpdated
    select (u.Field<string>("Emp Birthdate"));

var userTest1 = 
    from u in original
    select (u.Field<string>("Date of Birth"));
var用户测试=
来自用户更新中的u
选择(u.Field(“Emp生日”);
var userTest1=
原稿来自u
选择(u字段(“出生日期”);
两个字段的值相同,即出生日期和出生日期,即“1985年3月5日”

我给出了一个比较器,代码如下:

IEnumerable<DataRow> records =
    from u in updateRecords
    join o in OriginalRecords
        on u.Field<string>("Employee ID")
        equals o.Field<int>(" Employee Identity No").ToString()
    where (u.Field<string>("Date of Birth") != 
        o.Field<string>("Emp Birthdate"))
IEnumerable记录=
从u到updateRecords
加入原始记录
在u.Field上(“员工ID”)
等于o.Field(“员工身份号”).ToString()
其中(u.Field(“出生日期”)!=
o、 字段(“Emp生日”))
不匹配,以上记录.count()不等于0

有什么问题


提前感谢

您用这种语法查询什么

通常认为使用这样的字符串是不好的做法。强类型适配器更好,允许您访问
u.EmployeeId
,而不是
u.Field(“员工ID”)
。我猜这是你问题的原因。可能您键入的字段名不正确。我想不出有哪种情况下字段名会以空格开头,如
“Employee Identity No”
。事实上,我想不出有哪种情况会用到空格


然而,如果没有更多的信息,没有人能够帮助你。我们需要知道您正在查询什么,模式是什么样子,以及为什么您的语法是这样。如果不提供,您将得到的最佳答案是,您的问题最可能的原因是格式错误的魔术字符串。

数据表中的字段是否为字符串类型?是否有可能值存储在长度不同的字符字段中,即字符(20)和字符(30)?@Matt dot net,是的,这两个字段都是字符串,实际上,表格更新记录保存从excel工作表读取的值。原始记录是一个数据表,但datetime字段存储在字符串@Lazarus中,不,它不是以不同的长度存储的我使用Ienumerable来比较两个数据表我使用Ienumerable来比较两个数据表,我读取数据并填写在excel表中,我正在处理VSTO。excel工作表中读取和填充的数据存储在原始记录中。用户修改记录,我将保存这些记录。共有2500行和92列,因此我只需获取已修改的记录并对其进行更新。UpdateRecords是从excel工作表中读取并填充到datatable中的datatable。在这两个地方,数据都是字符串,而不是转换问题。