Announcement

Collapse
No announcement yet.

Datagrid neu sortieren

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

  • Datagrid neu sortieren

    Habe folgendes Problem:
    Ein typisiertes Dataset wird über einen DataAdapter mit Werten aus einer SQL-Server-Datenbank gefüllt.
    Diese Daten werden daraufhin in einem Datagrid angezeigt.
    Wird nun eine neue Zeile zu dem Dataset hinzugefügt und die SQL-Server-Datenbank über DataAdapter.Update(...) aktualliesiert, soll die Anzeige des angebundenen Datagrids automatisch neu sortiert werden.
    Das Update-Kommando ist so erstellt worden, dass die Daten im Dataset nach dem Update neu eingelesen werden.
    Weiterhin habe ich das Select-Kommando so erstellt, dass durch 'order by' eine Sortierung der abgefragten Daten erfolgen soll.
    Die Daten im Grid werden nur beim ersten Befüllen des Datasets sortiert angezeigt, allerding nach dem Hinzufügen eines neunen Datensatzes und einem darauffolgenden Update nicht mehr.
    Sinn und Zweck der Sache ist, dass ich eine Tabelle mit Uhrzeiten habe, dessen Datensätze nach dem Hinzufügen einer neuen Zeitangabe uhrzeitenmäßig neu sortiert angezeigt werden sollen.
    Wer kann mir diesbezüglich weiterhelfen.
    Danke im Voraus...

  • #2
    Hallo,

    das DataSet ist nur für die Speicherung der Ergebnismenge zuständig. Die (sortierte) Anzeige in der Benutzeroberfläche legt das <b>DataView</b>-Objekt fest (es spielt dabei keine Rolle, ob man dabei zum implizit immer vorhandenen <b>DefaultView</b>-Objekt aus dem DataSet oder zur separaten DataView-Komponente greift).

    Wenn das DataGrid an die DataView-Komponente gebunden wird und das DataView über die Eigenschaft <b>Sort</b> die Sortierreihenfolge festlegt, wird jeder neue Datensatz sofort im DataGrid an der "richtigen" Position angezeigt.

    Im folgenden Beispiel lädt der SqlDataAdapter eine vom SQL Server "unsortierte" Ergebnismenge über <i>SELECT recid, wert, zeit FROM SortDemo</i> ein:
    <pre>
    ...
    <font color="#003399"><i>// </i></font>
    <font color="#003399"><i>// dataView1</i></font>
    <font color="#003399"><i>// </i></font>
    <b>this</b>.dataView1.Sort = <font color="#9933CC">&quot;zeit ASC&quot;</font>;
    <b>this</b>.dataView1.Table = <b>this</b>.dataSet11.SortDemo;
    <font color="#003399"><i>// </i></font>
    <font color="#003399"><i>// dataGrid1</i></font>
    <font color="#003399"><i>// </i></font>
    <b>this</b>.dataGrid1.DataMember = <font color="#9933CC">&quot;&quot;</font>;
    <b>this</b>.dataGrid1.DataSource = <b>this</b>.dataView1;
    ...
    </pre&gt

    Comment


    • #3
      <p>
      Vielen Dank für die Info.<br>
      Habe vom Dataview zwar schon gehört, aber selber noch nicht zum Einsatz gebracht.
      </p>
      <p>
      Grüße und bis zum nächsten Mal..., André
      </p&gt

      Comment

      Working...
      X