Sql Query的一部分:
...
RIGHT(cast([ADJ_DATE] AS DATE), 5) DH
...
在DataTable(dt
)中将列作为以下格式返回:
11-15
11-13
11-20
11-14
尝试执行以下操作:
string dat = DateTime.Now.AddDays(-2).ToString("MM-dd"); // which returns 11-13
var k = dt.AsEnumerable().Any(row => dat == Convert.ToString(row.Field<DateTime>("DH"))); //should return the row with 11-13, but instead I get an error
错误:
Exception Details: System.InvalidCastException: Specified cast is not valid.
如何更新代码以便我获得所需的结果。
答案 0 :(得分:2)
您不需要DateTime
var k = dt.AsEnumerable().Any(row => dat == row.Field<string>("DH"));
RIGHT
返回具有指定编号的字符串的右侧部分 人物。
请查看here。
<强>更新强>
如果您想获取DH
值等于dat
的所有行,那么您应该使用Where
方法:
var rows = dt.AsEnumerable().Where(row => dat == row.Field<string>("DH"));