tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
306
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Razorhawk
    Razorhawk Razorhawk ist offline Webdesigner und MSP
    Registriert seit
    Aug 2002
    Ort
    Berlin
    Beiträge
    1.363
    Hi ich habe hier zwei unterschiedliche Versionen eine Programmcodes und würde gerne wissen welcher eleganter bzw. sauberer ist und vielleicht auch warum ihr denkt, dass der gewählte besser.

    Beide Lösungen funktionieren. Eine verwendet in eine Session gespeicherte Daten und die andere nutzt die Daten in dem GridView um zu filtern.

    Der folgende ist das PageLoad (nur um den ganzen Code zu verstehen)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
            protected void Page_Load(object sender, EventArgs e)
            {
                DataSet objDS = new DataSet();
     
                string conString = "Data Source=MeinPC\\SQLEXPRESS;Initial Catalog=Datenbank;Integrated Security=True";
                string queryString ="SELECT Id,Product, Description FROM dbo.Products;";
                SqlConnection sqlCon = new SqlConnection(conString);
     
                SqlCommand objCmd = new SqlCommand(queryString,sqlCon);
                SqlDataAdapter objDA = new SqlDataAdapter(objCmd);
                objDA.Fill(objDS);
                gridCities.DataSource = objDS;
                gridCities.DataBind();
                Session["ds"] = objDS;
            }

    So welche Lösung ist jetzt besser?

    Lösung 1
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     
       protected void btnSearch_Click(object sender, EventArgs e)
            {
                DataSet ds = Session["ds"] as DataSet;
                DataView dv = ds.Tables[0].DefaultView;
                dv.RowFilter = "Product LIKE '" + txtSearch.Text + "%'";
                gridCities.DataSource = dv;
                gridCities.DataBind();
            }

    oder

    Lösung 2

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     
       protected void btnSearch_Click(object sender, EventArgs e)
            {
                DataSet ds = gridCities.DataSource as DataSet;
                DataView dv = ds.Tables[0].DefaultView;
                dv.RowFilter = "Product LIKE '" + txtSearch.Text + "%'";
                gridCities.DataSource = dv;
                gridCities.DataBind();
            }

    Grüße
     
    Sebastian Schütze
    Offizieller
    Microsoft Junior Student Partner
    und Microsoft Partner
    Humboldt Universität zu Berlin

    Email: sebastian.schuetze@studentpartners.de
    Website der MSP: www.studentpartners.de

    Webdesign: Razorstudio
    Website: www.razorstudio.de
    Email: Sebastian.Schuetze@razorstudio.de

  2. #2
    Avatar von Resu
    Resu Resu ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Remscheid (NRW)
    Beiträge
    14
    Hallo Sebastian,

    ich persönlich würde die zweite Lösung verwenden. Dies zum Beispiel deshalb weil man sich mit zwei geöffneten Fenstern der gleichen Seite gegenseitig die Sessionobjekte überschreiben kann.

    Generell würde ich die Session nur für Objekte verwenden welche übergreifend für die gesamte Webseite zur Verfügung stehen sollen. Falls es einmal nicht über in .NET zu Verfügung stehende Mittel lösbar ist so würde ich immer noch lieber mit versteckten Feldern im Postback arbeiten als mit der Session. Habe da auch so meine Erfahrung gemacht

    Gruss
    Resu
     

Ähnliche Themen

  1. Filterung + Auflistung
    Von ph612 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 27.05.10, 16:54
  2. Antworten: 8
    Letzter Beitrag: 25.07.09, 19:05
  3. Kinderschutz / Content-Filterung
    Von Soapp im Forum Internet, DSL & Flatrate
    Antworten: 0
    Letzter Beitrag: 28.03.07, 19:29
  4. Filterung eines Arrays
    Von Paula im Forum PHP
    Antworten: 4
    Letzter Beitrag: 19.04.06, 13:38
  5. Antworten: 3
    Letzter Beitrag: 10.12.05, 13:21