我有一个格式如下的表格。
PID ID Label Value
------------------------------------------
1 1 First Name Jenna
1 2 DOB 10/12/1980
我需要检索名字以 J 开头且出生日期为 10 的所有 PID。
在我的代码中,我在 C# 中的 DataTable 中检索这些,然后尝试使用 LINQ 检索我想要的结果。这只是一个例子。这些标签可以是用户定义的任何东西。
使用 LINQ,我能够检索名字以 J 开头的所有 PID,但每次我尝试为 DOB 转换值时,我都会得到 cast not valid 错误。我无法更改数据库中的列类型,因为 Value 可以包含任何类型的信息。
这是我的一段代码。我是 LINQ 的新手,仍在尝试解决它。
var resultQuery = from r in query.AsEnumerable()
where (r.Field<string>("Label") == Label &&
r.Field<DateTime>("Value").Month == 10)
select r.Field<int>("PID");