Linq到数据集-获取C中的特定列值
我正试图根据错误Id获取错误描述:Linq到数据集-获取C中的特定列值,linq,dataset,Linq,Dataset,我正试图根据错误Id获取错误描述: String errorDesc = from resultCodesTableRow in resultCodesDT.AsEnumerable() where resultCodesTableRow.Field<int>("Error_Code_Column_Name") == errorCode select resultCodes
String errorDesc = from resultCodesTableRow in resultCodesDT.AsEnumerable()
where resultCodesTableRow.Field<int>("Error_Code_Column_Name") == errorCode
select resultCodesTableRow.Field<string>("Error_Desc_Column_Name").ToString();
为什么会出现错误:
无法将类型“System.Data.EnumerablerRowCollection”隐式转换为“string”
查询应该是什么样子的 变化
ResultCodeDT.A可计算到ResultCodeDT.rows
这是否有效:
where (int)resultCodesTableRow.GetItem("Error_Code_Column_Name") == errorCode
select resultCodesTableRow.GetItem("Error_Desc_Column_Name")
我不太确定实际的LINQ查询返回的是什么,最有可能是通过看到它,正如您所说的,它可能返回一个集合,因此为了避免对查询使用第一个或最后一个方法 字符串errorDesc=来自ResultCodedt.AsEnumerable中的ResultDestTableRow 其中resultDestTableRow.FieldError\u Code\u Column\u Name==errorCode
选择ResultDestTableRow.FieldError\u Desc\u Column\u Name.First.ToString 语句中的Select函数将返回IEnumerable。 相反,你需要使用类似
String errorDesc = (from resultCodesTableRow in resultCodesDT.AsEnumerable()
where resultCodesTableRow.Field<int>("Error_Code_Column_Name") == errorCode
select resultCodesTableRow.Field<string>("Error_Desc_Column_Name").ToString()).First();
String errorDesc = resultCodesDT.Where(X=> x.Error_Code_Column_Name==errorCode)
.Select(s=>s.Error_Desc_Column_Name.toString()).First();