Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    285

    [VB.Net] ricavare il valore di più select

    Nell'impresa quasi impossibile di rifare un mio siterello in .net sto diventando scemo per le imprese più banali affrontabili con pochi secondi in asp..

    allora.. avrei necessità di eseguire (credo) 6 query in una pagina per contare quanti record sono presenti in categorie diverse. Vorrei eseguire il metodo più veloce possibile con ovviamente l'impiego minimo di risorse, chi mi da una mano?


    mi servono sei valori numerici, la query sarà sempre uguale, del tipo

    Select * from miaTabella where categoria=1
    Select * from miaTabella where categoria=2
    Select * from miaTabella where categoria=3
    Select * from miaTabella where categoria=4
    Select * from miaTabella where categoria=5
    Select * from miaTabella where categoria=6


    ho tentato qualcosa come

    codice:
            Dim Da As New Odbc.OdbcDataAdapter("SELECT * FROM miaTabella where categoria=1", conn)
            Da.Fill(ds)
            Dim conta1 As Integer = ds.Tables(0).Rows.Count
            Da.Dispose()
            ds.clear
    
    
            Dim Da2 As New Odbc.OdbcDataAdapter("SELECT * FROM miaTabella where categoria=2", conn)
            Da2.Fill(ds)
            Dim conta2 As Integer = ds.Tables(0).Rows.Count
            da2.dispose
            ds.clear
    ecc.. ecc.. calcolando che i record sono abbastanza numerosi dubito sia una soluzione molto ottimizzata, chi mi sa consigliare?

  2. #2
    Vuoi solo contare quanti record restituiranno quelle sei query o serve anche il loro contenuto?
    codice:
    Dim conn as OleDbConnection = new
    OleDbConnection(...)
    conn.Open()
    dim command as new  OleDbCommand
    command=new OleDbCommand("Select * from miaTabella where categoria=1",conn)
    risultato1=command.ExecuteScalar()
    command=new OleDbCommand("Select * from miaTabella where categoria=2",conn)
    risultato2=command.ExecuteScalar()
    command=new OleDbCommand("Select * from miaTabella where categoria=3",conn)
    risultato3=command.ExecuteScalar()
    ...
    conn.Close()
    Ma, ancora meglio, sempre se è valido nel tuo caso, fai un'unica query:
    codice:
    select categoria,count(*) as quanti from miaTabella group by categoria
    Che restituisce l'elenco delle categorie con il numero di record per ognuno di essi.

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    285
    Allora, la mia tabella è composta dai seguenti campi;

    Id
    IdUtente
    IdProvincia
    IdCategoria
    TitoloAnnuncio
    DescrizioneAnnuncio
    ecc..



    Con ognuna di quelle query effettuate vorrei contare quanti annunci sono stati inseriti per ogni categoria che appunto sono 6


    Ho provato l'esempio riportato precedentemente ma le query non mi restituisce correttamente il numero di annunci presenti per ogni categoria. Restituiscono un intero ma credo sia il numero dell'id..

    Come fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    285
    risolto.. colpa della mia ignoranza..


    ho modificato
    codice:
    command=new OleDbCommand("Select * from miaTabella where categoria=1",conn)
    risultato1=command.ExecuteScalar()
    in

    codice:
    command=new OleDbCommand("Select count(id) from miaTabella where categoria=1",conn)
    risultato1=command.ExecuteScalar()

    :rollo:

    per sta volta è andata


    Grazie mille per l'aiuto

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.