Announcement

Collapse
No announcement yet.

Problem DateTime zu filtern!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem DateTime zu filtern!

    Hallo!

    Ich hab da ein kleines Filterproblem. In einem DataSet hab ich Daten unterschiedlichen Datentyps. Über einen Filter soll die Datenanzeige eingeengt werden. Ich dachte mir man kann das am einfachsten über einen DataView realisieren - bei Strings (z.B. mit like ...) oder Ganzzahlen (>= ... , <= ..., ...) funktioniert es ohne Problem, beim Datentyp DateTime jedoch stoße ich auf Granit.
    Was muss man hier denn beachten wenn ich u.a. auch nach DateTime filtern möchte ohne die Daten nochmal vom Server zu holen, also ohne das DataSet zu verändern??

    <BR>
    MfG und D.i.v
    Bav

  • #2
    Hallo,

    die <b>RowFilter</b>-Eigenschaft des DataView sollte diesen Job in jedem Fall erledigen können. Das folgende Beispiel filtert die Datenmenge für eine Geburtstags-Liste (unabhängig vom Jahr):

    <pre>
    <b>private</b> <b>void</b> buttonRowFilter_Click(<b>object</b> sender, System.EventArgs e)
    {
    DataView aDV;
    aDV = <b>new</b> DataView(<b>this</b>.dataSet11.RowFilterDemoTbl);
    aDV.RowFilter = <font color="#9933CC">&quot;Substring(Convert(Datum,'Sys tem.String'),1,5) = '01.01'&quot;</font>;
    dataGrid1.DataSource = aDV;
    statusBar1.Text = <font color="#9933CC">&quot;Gefiltert nach den ersten 5 Datums-Zeichen&quot;</font>;
    }
    </pre>

    Die dazu passende Tabelle sieht so aus:
    <pre>
    USE tempdb
    <b>GO</b>
    <b>CREATE</b> <b>TABLE</b> RowFilterDemoTbl (
    RecID <b>INTEGER</b> <b>NOT</b> <b>NULL</b> <b>IDENTITY</b> <b>PRIMARY</b> <b>KEY</b>,
    Wert <b>VARCHAR</b>(9) <b>NOT</b> <b>NULL</b>,
    Datum SMALLDATETIME <b>NOT</b> <b>NULL</b> <b>DEFAULT</b> GetDate())
    <b>GO</b>
    <b>INSERT</b> <b>INTO</b> RowFilterDemoTbl (Wert) <b>VALUES</b> (<font color="#9933CC">'A'</font>)
    <b>INSERT</b> <b>INTO</b> RowFilterDemoTbl (Wert,Datum) <b>VALUES</b> (<font color="#9933CC">'B'</font>,<font color="#9933CC">'01.01.2003'</font>)
    <b>INSERT</b> <b>INTO</b> RowFilterDemoTbl (Wert,Datum) <b>VALUES</b> (<font color="#9933CC">'C'</font>,<font color="#9933CC">'01.01.2002'</font>)
    <b>INSERT</b> <b>INTO</b> RowFilterDemoTbl (Wert,Datum) <b>VALUES</b> (<font color="#9933CC">'D'</font>,<font color="#9933CC">'01.01.2000'</font>)
    <b>INSERT</b> <b>INTO</b> RowFilterDemoTbl (Wert,Datum) <b>VALUES</b> (<font color="#9933CC">'E'</font>,<font color="#9933CC">'09.04.2003'</font>)
    <b>GO</b>

    </pre&gt

    Comment

    Working...
    X