Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Impaginazione risultati query con script C#

    Salve a tutti,

    mi sono appena registrato al forum per chiedervi aiuto riguardo uno script che sto costruendo.

    Premesso che mi sono affacciato da poco al web dinamico e che ho pochissime conoscenze di ASP.NET, ho trovato uno script in C# in rete che ho riadattato alle mie esigenze.

    Cosa fa lo script ?

    - si connette a un database Access
    - esegue una query in base ai valori inseriti in un form
    - fa un ciclo while in cui stampa i risultati

    Il tutto viene eseguito dentro il tag <script language="c#" runat="server"> ... </script>

    Cosa vorrei io? Che i risultati venissero impaginati per non avere una pagina unica con 1000 record.

    Vi ringrazio anticipatamente per il vostro aiuto.

    Ecco il codice completo:
    codice:
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %>
    
            
    <script language="C#" runat="server">
    
        void Page_Load(Object sender, EventArgs e)
        {
     
     
     
            // stringa di connessione
            String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("marmar.mdb");
    
            // oggetto cn di tipo OleDbConnection
            OleDbConnection cn = new OleDbConnection(ConnString);
    
            // apertura della connessione
            cn.Open();
    
    
    
    		// creazione della pagina
    		
            // Per inserire file esterno:
            // Response.WriteFile ("XXXXX.htm");
            
            // Per scrivere codice:
            // Response.Write("</XXXXX>");
            
            // ATTENZIONE: ALL'INTERNO DI RESPONSE.WRITE TUTTE LE VIRGOLETTE DEVONO ESSERE SINGOLE
            // EXA: Response.Write("<p class='serif'>");
    
    
    		// ALL'INTERNO DELLA DIV "CONTENT", DOPO GLI H, AGGIUNGIAMO:
    			// ! PER IL TAG LABEL VA CREATA UNA CLASSE CSS CHE NE SPECIFICA WIDTH 
    		
    		
    		// form
    		Response.Write("<form action='' method='get'>");
    		Response.Write("<label for='titolo'>Titolo:</label>");
    		Response.Write("<input type='text' name='titolo'>");
    		Response.Write("
    ");
    		Response.Write("<label for='autore'>Autore:</label>");
    		Response.Write("<input type='text' name='autore'>");
    		Response.Write("<input type='submit' name='submit' value='Cerca'>");
    		Response.Write("</form>");
    
    
            // query
            // la variabile si scrive:
            // '%" + Request.QueryString["NOME DELL'INPUT"] + "%'
    		// il simbolo % è obbligatorio con LIKE, vale come un asterisco (exa: %king%)
            // REGOLE:
            // NON INTERPORRE PIU' DI UNO SPAZIO TRA LE PAROLE, ALTRIMENTI LA QUERY NON FUNZIONA
            // NON SPEZZARE MAI LA RIGA
            String sql =
            "SELECT TITOLO, AUTORE FROM titoli WHERE titolo LIKE '%" + Request.QueryString["titolo"] + "%' AND autore LIKE '%" + Request.QueryString["autore"] + "%' ORDER BY titolo";
    
            // creiamo l'oggetto cmd di tipo OleDbCommand
            // passando la Sql e la connessione al costruttore dell'oggetto
            OleDbCommand cmd = new OleDbCommand(sql, cn);
    
            // creiamo un oggetto di tipo OleDbDataReader
            // Esso è assimilabile a un RecordSet con cursore di tipo forward-only in ASP tradizionale
            OleDbDataReader rdr = cmd.ExecuteReader();
    
    		
    		
    		
            // Cosi si farebbe una tabella:
            // Response.Write("<table border=1 cellspacing=1 align=center>");
            // Response.Write("<tr><th>TITOLO</th><th>AUTORE</th></tr>");
    
            // while (rdr.Read()){
            //    Response.Write("<tr>");
            //    Response.Write("<td>" + rdr["TITOLO"] + "</td>");
            //   Response.Write("<td>" + rdr["AUTORE"] + "</td>");
            //    Response.Write("</tr>");
            //}
    		// ...vari response.write con i tag di chiusura
    	
    
    
    
    
    
    // -----------------------------
    
    
    //--------------
    
    
    
    
    
    
    
    		// COME LO VOGLIO IO:
    
    // se tutti i campi di ricerca sono vuoti...	
    if
    	(
    		(string.IsNullOrEmpty(Request.QueryString["titolo"]))
    		&&
    		(string.IsNullOrEmpty(Request.QueryString["autore"]))
    		// inserire tutti i Request.QueryString del form, preceduti da &&
    	)
    	// ...impongo all'utente di inserire almeno un parametro	
    	{
    		Response.Write("Inserire almeno un parametro di ricerca.");
    	}
    
    // se invece ha inserito qualcosa ma non viene trovata...
    else if
    	(rdr.HasRows == false)
    	{
    		Response.Write("La ricerca non ha prodotto alcun risultato.");
    	}		
    		
    // se invece viene trovata...
    else
    	// ...procedo normalmente a visualizzare i risultati
    	{ 
    		Response.Write("<h3>Risultati della ricerca:</h3>");
    		Response.Write("<ul class='teche'>");
    
    		while (rdr.Read()){
               	Response.Write("[*]");
               	Response.Write("" + rdr["TITOLO"] + "
    ");
               	Response.Write("Autore:" + rdr["AUTORE"] + "
    ");
               	Response.Write("");
               	Response.Write("<hr />");
    			}
    
    			Response.Write("[/list]");
    	} 
    
    
    
    
            // Completiamo il codice Html della della pagina.
            
            // Per inserire file esterno:
            // Response.WriteFile ("XXXXX.htm");
            
            // Per scrivere codice:
            // Response.Write("</XXXXX>");
    
            // ATTENZIONE: ALL'INTERNO DI RESPONSE.WRITE TUTTE LE VIRGOLETTE DEVONO ESSERE SINGOLE
            // EXA: Response.Write("<p class='serif'>");
    
    
            // chiusura del DataReader
            rdr.Close();
    
            // chiusura della connessione
            cn.Close();
        }
    </script>

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ....per modificare la pagina, non devi usare Response.write.
    Piuttosto, gli oggetti designati alle varie funzioni, fra cui la Gridview, a cui puoi dare un numero di elementi per pagina.
    Credo tu sia partito con un approccio sbagliato, scusami :-(

    Ti consiglio di leggere un manuale..

  3. #3
    Ti ringrazio della risposta.

    Me ne ero già reso conto da solo che questo script non mi portava da nessuna parte, quindi ho riscritto la pagina utilizzando controlli Asp.net.

    Grazie comunque e alla prossima,
    Marco

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.