数据视图行筛选器无效的日期时间字符串

本文关键字:日期 时间 字符串 无效 视图 筛选 数据 | 更新日期: 2023-09-27 18:22:08

我正在努力解决以下问题。我有一个数据表,里面有日期。日期可以包含几个时间行。现在我想点击日历上的日期,它会把当天的时间记录放在列表框中,这样我就可以选择时间了。

我被困在谷歌上,但我现在失明了。

gridview中的数据表输出:

Datum
-----------------
22-09-14 13:05:00
22-09-14 13:05:18
23-09-14 13:05:36
23-09-14 13:05:54
23-09-14 13:06:12
21-09-14 14:00:01
21-09-14 15:00:01
21-09-14 16:00:01
21-09-14 17:00:01

calander SelectionChanged事件中的代码:

        // Create datatable
        DataTable dt = new DataTable();
        string FileName = "C:''ProjectName''data''data.dat";
        var lines = File.ReadAllLines(FileName);
        // Make date column
        dt.Columns.Add("Datum", typeof(DateTime));
        // add rows
        for (int i = 2; i < lines.Count(); i++)
        {
            DataRow dr = dt.NewRow();
            string[] values = lines[i].Split(new char[] { ',' }).Select(x => x.Replace("'"", "")).ToArray();
            for (int j = 0; j < values.Count() && j < 1; j++)

                dr[j] = values[j];
            dt.Rows.Add(dr);
        }
        // Convert selected date
        string currentDate = e.SelectedDates.Count - 1 >= 0 ? e.SelectedDates[e.SelectedDates.Count - 1].Date.ToString("dd-MM-yyyy") : "none";
        // Print selected date to see format
        Label1.Text = currentDate;
        // Create dataview and apply filter
        DataView dv = new DataView(dt);
        dv.RowFilter = "Datum = #" + currentDate + "#";
        dv.RowStateFilter = DataViewRowState.ModifiedCurrent;
        dv.Sort = "Datum DESC";
        // dataview to listbox
        lbSource.DataSource = dv;
        lbSource.DataTextFormatString = "{0:dd-MM-yyyy HH:mm}";
        lbSource.DataTextField = "Datum";
        lbSource.DataValueField = "Datum";
        lbSource.DataBind();

dv滤波器给了我:

字符串未被识别为有效的DateTime。

调试在以下行停止,并给出"字符串未被识别为有效的DateTime":

dv.RowFilter = "Datum = #" + currentDate + "#";

currentdate附带正确的日期:2014年9月22日(dd-MM-yyyy)

如果有人能帮我,非常感谢:)

数据视图行筛选器无效的日期时间字符串

基本上,.rowfilter比较将日期作为Mm/dd/yyyy进行比较。2018年10月20日将被视为无效日期。它适用于低于12的一天。

因此,在您的datatable中,日期存储为dd/mm/yyyy
除非您将日期存储格式更改为mm/dd/yyyy,否则我认为您无法使用rowsfilter