Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Numeri Mancanti

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    Numeri Mancanti

    Ciao a tutti,
    in questo modo prelevo dei numeri di tessera da un db

    dim objcmd_ver as new oledbcommand (" select * from num_tes ", objconn)

    dim read as oledbdatareader

    objconn.open
    read=objcmd_ver.executereader

    dim la_tessera as integer

    dim i as integer

    while read.read
    la_tessera=read.getint32(1)


    response.Write(la_tessera)


    end while
    read.close
    objcmd_ver.connection.close()
    Il problema è che le tessere dovrebbero essere consecutive es:1-2-3-4 ecc...

    Ma per errore alcune tessere inserite non sono consecutive a quella prima.
    Quindi ci sono dei numeri saltati es: 1-3-4-6 ecc...


    Come faccio ad evidenziare i numeri saltati?

    Grazie
    victor
    ----------------------

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Basta un po' di logica:

    1) fra i campi della SELECT estrai anche uno con la funzione MAX("campo numero tessera"), che supponiamo risulti = X (...oppure prima fai un'altra query)

    2) crea un array con X+1 elementi, di contenuto vuoto

    3) cicla sul DataReader e -visto che si tratta di numeri interi- usa ogni valore come indice per l'array di appoggio, riempendo il valore dell'elemento dell'array di appoggio con una stringa (es. hai trovato il numero di tessera 2, e l'elemento con indice 2 dell'array di appoggio conterra' una "Tessera 2 trovata")

    4) cicla nell'array di appoggio e saprai quali numeri tessera sono in tabella e quali no: se l'elemento è vuoto (null) vuol dire che è un numero tessera mancante.

    Non so se mi sono spiegato.

    ================================
    Esempio che funziona:
    (con un array chiamato Array_Select al posto del DataReader)

    codice:
    protected void Page_Load(object sender, EventArgs e)
    {
        // simulazione del risultato della query principale
        int[] Array_Select = new int[6] { 0, 1, 3, 9, 10, 11 };
    
        // array dimensionato con il numero massimo trovato nel risultato
        string[] Array_Appoggio = new string[Array_Select.Max() + 1];
    
        // Costruzione dell'array che conterrà gli elementi trovati e quelli mancanti     
        foreach (int TesseraTrovata in Array_Select) Array_Appoggio[TesseraTrovata] = "Tessera " + TesseraTrovata + " esistente";
    
        int n = 0;
        foreach (string valore in Array_Appoggio)
        {
            if (valore != null) Response.Write(valore + "<br />");
            else Response.Write("Tessera " + n.ToString() + " non esistente.<br />");
            n++;
        }
    }
    Ultima modifica di djciko; 27-10-2016 a 02:36

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Comunque il thread è del 01 Dicembre 2007, per favore Victor se le soluzioni che ti abbiamo dato non risolvono il tuo problema, riaprilo copiando il codice necessario per cui vuoi l'aiuto.

    (questo poi devo chiuderlo e settarlo appositamente per una futura pulizia, altrimenti non viene considerato nelle cancellazioni cicliche dei vecchi thread)

    Grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.