DataTable.Select表达式使用DateTime等于过滤器失败

时间:2011-05-13 09:06:36

标签: c# .net ado.net

我从数据库中保存的数据库中检索了一些数据。 我想要做的是仅提取与作为参数传递的日期匹配的记录,只要它大于DateTime.MinValue()。这应该很容易。

下面是我如何构建查询字符串的代码片段。我知道如果我没有日期过滤器,我会得到'x'记录,但我总是得到0日期过滤器。

    string query = string.Format("Field_Name IN( 'GENDER','DOB','MARITAL_STATUS','SS') AND DIFF_TYPE = 'PER' AND Person_ID = '{0}'", Person_ID);

    if (ChangeDetected > DateTime.MinValue)
    {
        query += string.Format(" AND ChangeToDT = #{0}#", ChangeDetected);
    }

    ChangeDataSet.DifferencesRow[] perChanges = this.m_ChangeDS.Differences.Select(query, "ChangeFromDT ASC, Field_Name DESC") as ChangeDataSet.DifferencesRow[];

我在过滤器中尝试了DateTime的输出格式的各种变体,但它们都有相同的结果。

我不知道LINQ能够以这种方式进行条件过滤。 {:O(

1 个答案:

答案 0 :(得分:0)

尝试直接指定格式:

query += string.Format(" AND ChangeToDT = #{0}#", ChangeDetected.ToString("MM/dd/yyyy"));

BTW:这与LINQ无关。