none
Bindingsource.Filter used on Date RRS feed

  • Frage

  • My code looks like the following codeblock:

    BindingSource.Filter = "Date Is '%" + DateTime.Today.ToShortDateString() + "%'"; 

    I don't know why it doesn't work.

    Can anyone help me please?

    Thank you ;)

    Dienstag, 2. Juni 2015 10:19

Antworten

  • Hi Josef,
    BindingSource versteht kein "Create Table". Eine BindingSource wird üblicherweise in einer Windows Forms Anwendung genutzt und greift auf eine Liste von .NET-Datenobjekten zu. Und da ist es für den Filter wichtig, von welchem Typ das dort enthaltene Datumsfeld ist. Wenn es sich bei der Datenquelle für die BindingSource um eine DataTable handelt, die mit DataAdapter gefüllt wurde, dann ist das Datumsfeld bei Nutzung des Designern ein .NET-Date-Feld. Und da kann man für den Filter nutzen:

    BindingSource.Filter = string.Format("Date <= #{0}#", DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture));


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert Josef P Dienstag, 2. Juni 2015 15:50
    • Tag als Antwort aufgehoben Josef P Mittwoch, 10. Juni 2015 20:54
    • Als Antwort markiert Josef P Mittwoch, 10. Juni 2015 20:54
    Dienstag, 2. Juni 2015 11:48

Alle Antworten

  • Hi Josef,
    wichtig wäre zu wissen, von welchem Typ deine Spalte Date ist. Der Objektvergleich mit "Is" funktioniert in jedem Fall nicht.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert Josef P Dienstag, 2. Juni 2015 11:14
    • Tag als Antwort aufgehoben Josef P Dienstag, 2. Juni 2015 11:19
    Dienstag, 2. Juni 2015 10:50
  • Die Spalte Date ist vom Typ DATE.

    CREATE TABLE [dbo].[Eintraege] (
        [ID]                  INT          NOT NULL,
        [Eintragtitel]        NCHAR (30)   NOT NULL,
        [Datum]               DATE         NOT NULL,
        [Uhrzeit]             TIME (0)     NOT NULL,
        [Eintragbeschreibung] NCHAR (2000) NULL,
        PRIMARY KEY CLUSTERED ([ID] ASC)
    );

    Wie könnte ich das jetzt lösen, wenn es mit dem Objektvergleich "Is" nicht funktioniert?

    Danke an Peter Fleischer 

    Dienstag, 2. Juni 2015 11:14
  • Hi Josef,
    BindingSource versteht kein "Create Table". Eine BindingSource wird üblicherweise in einer Windows Forms Anwendung genutzt und greift auf eine Liste von .NET-Datenobjekten zu. Und da ist es für den Filter wichtig, von welchem Typ das dort enthaltene Datumsfeld ist. Wenn es sich bei der Datenquelle für die BindingSource um eine DataTable handelt, die mit DataAdapter gefüllt wurde, dann ist das Datumsfeld bei Nutzung des Designern ein .NET-Date-Feld. Und da kann man für den Filter nutzen:

    BindingSource.Filter = string.Format("Date <= #{0}#", DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture));


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert Josef P Dienstag, 2. Juni 2015 15:50
    • Tag als Antwort aufgehoben Josef P Mittwoch, 10. Juni 2015 20:54
    • Als Antwort markiert Josef P Mittwoch, 10. Juni 2015 20:54
    Dienstag, 2. Juni 2015 11:48
  • Vielen Dank Peter Fleischer für Ihre Antwort.
    Leider funktioniert es noch immer nicht ich glaube aber nicht das es an dieser nun bestimmten
    Filtereigenschaft liegt.

    Viele Grüße 
    Josef P.
    Dienstag, 2. Juni 2015 15:50