HIK Elektronikus Felsőoktatási Tankönyv- és Szakkönyvtár
A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerû felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

18.5.5. Rendezés a DataViewban

A rendezéshez létre kell hoznunk egy string kifejezést, melyben megadhatjuk, hogy mely oszlopok szerint szeretnénk rendezni a sorokat, és milyen irányban.

„Price DESC, Title ASC”

Egy táblához több nézet

Nézzünk egy példát erre:

using System; using System.Diagnostics;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;namespace Akadia.DataView {  public class FilterOrder : System.Windows.Forms.Form   {    ....    private SqlConnection cn;     private SqlCommand cmd;     private SqlDataAdapter da;    private DataSet ds;          public FilterOrder()     {      try       {        InitializeComponent();        // Initializing        cn = new SqlConnection("        server=xeon;database=northwind;uid=sa;pwd=manager");        cmd = new SqlCommand("SELECT * FROM orders",cn);        da = new SqlDataAdapter(cmd);        ds = new DataSet();        // Kezdő adatok betöltése        RetrieveData();      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    // Orders Tábla adatai    private void RetrieveData()     {      try      {        da.Fill(ds,"Orders");        DataGrid.DataSource = ds.Tables[0];        // Combobox feltöltése a mezőnevekkel        FillSortCriteria();      }      catch (Exception ex)       {        Debug.WriteLine(ex.ToString());        MessageBox.Show(ex.ToString());      }    }    // Combobox feltöltése a mezőnevekkel    private void FillSortCriteria()     {      try       {        if (cmbSortArg.Items.Count > 0)         {          return;        }       foreach (DataColumn dc in ds.Tables[0].Columns)         {          cmbSortArg.Items.Add(dc.Caption);  // Sort Combobox          cmbFields.Items.Add(dc.Caption);   // Filter on Column Combobox        }      }       catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    // Setup Szűrőfeltétel beállítása     private void SetFilter(string strFilterExpression)     {      try       {

ds.Tables[0].DefaultView.RowFilter = strFilterExpression;        // Kiolvassuk a rekordszámot a DataViewban       if (ds.Tables[0].DefaultView.Count > 0)         {          DataGrid.DataSource = ds.Tables[0].DefaultView;        }        else         {          MessageBox.Show("Filter criteria does not meet criteria");        }      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    private void btnQuery_Click(object sender, System.EventArgs e)     {      try       {        // Clear DataSet        ds.Clear();                  // Clear Filter        ds.Tables[0].DefaultView.RowFilter = "";        // Re-Retrieve Data        RetrieveData();      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    // Beállítjuk a DataViewban a rendezést    private void btnSort_Click(object sender, System.EventArgs e)     {      try       {        string strSort;        // IF Radiobox "Ascending" is checked, then        // sort ascending ...        if (rbAsc.Checked)         {          strSort = cmbSortArg.Text + " ASC";    // Note space after "        }        // ... else descending        else         {          strSort = cmbSortArg.Text + " DESC";   // Note space after "        }        // Érvényesítjük a rendezést        ds.Tables[0].DefaultView.Sort = strSort;        DataGrid.DataSource = ds.Tables[0].DefaultView;      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }                }    private void btnFilterTitle_Click(object sender, System.EventArgs e)     {      try       {        SetFilter("CustomerID like '" + txtFilter.Text + "'");      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    private void btnGeneralFilter_Click(object sender, System.EventArgs e)     {      try       {        SetFilter(txtGeneralFilter.Text);      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    private void btnFilteronColumn_Click(object sender, System.EventArgs e)     {      try       {        SetFilter(cmbFields.Text + " " + txtFilterColumn.Text);      }      catch (Exception ex)       {        MessageBox.Show(ex.ToString());        Console.WriteLine();      }    }    ...    [STAThread]    static void Main()     {      Application.Run(new FilterOrder());    }  }}