Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141

    somma di una colonna del dataset

    Salve a tutti, vi sottopongo un dubbio.....

    con il codice sotto creo un dataset di due colonne "Categoria" e "TotaleCat" che poi visualizzo con un datagrid:


    dim objConn as new OleDbConnection("Provider=IBMDA400; Data Source=192.168.0.51; User ID=XXXXX; Password=xxxxx")
    Dim objCmd as new OleDbDataAdapter (("SELECT BRTPOR AS Categoria, SUM(BRVALO) AS TotaleCat FROM YFILEURO.OCTES00F WHERE BRDTOR Between ")& Dal &(" and ")& Al &(" GROUP BY BRTPOR" ), objConn)

    Dim ds as DataSet = new DataSet()
    objCmd.Fill(ds, "YFILEURO.OCTES00F")



    Ora senza dover effettuare una nuova query sul db è possibile secondo voi effettuare la somma della colonna TotaleCat e assegnare il valore ad una variabile.


    Un ciao a tutti:master:
    -||> xamax <||-

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    potresti

    scorrere il datagrid ed effettuare le operazioni che ti servono su ogni riga,, oppure dare direttamente il risultato dallastringa della query

    koning

  3. #3
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141
    Ciao Koning,

    penso di non aver capito....intendi creare una nuova query???


    ri ciao
    -||> xamax <||-

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    no...scusa

    ho detto una cavolata...l'unica cosa che mi viene in mente è scorrere il ds e sommare valori

    koning

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Se vuoi calcolare il totale, media, conteggio di una colonna di una tabella di un dataset, puoi utilizzare il metodo compute:
    esempio
    DataSet.Tables(0).Compute("sum(campo)", Nothing)

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Un altro modo per calcolare una somma e mostrarla per esempio nel datagrid, è quella di utilizzare l'evento ItemDataBound del datagrid.
    1)Dichiari una variabile non private fuori delle procedure
    2) nell'evento ItemDataBound controlli la proprietà ItemType e, se è del tipo ListItemType.Item o ListItemType.AlternatingItem, sommi alla varibile il campo che ti interessa.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    236

    bello il modo compute....

    non lo sapevo....grande

    koning

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: bello il modo compute....

    Originariamente inviato da koning
    non lo sapevo....grande

    koning
    Sono talmente tante le classi di .Net che ci vorrebbero 2 vite per conoscerle tutte :gren:

  9. #9
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877

    Re: bello il modo compute....

    Originariamente inviato da koning
    non lo sapevo....grande

    koning
    http://www.ugidotnet.org/tips/tips_read.aspx?ID=83

    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  10. #10
    Utente di HTML.it L'avatar di xamax
    Registrato dal
    Oct 2001
    Messaggi
    141
    ho provato a risolvere così... un pò macchinoso ma funziona

    dim i as integer
    dim rig as integer = ds.Tables("YFILEURO.OCTES00F").rows.count
    dim val as integer = 0
    for i = 0 to rig-1
    val = val + Cint(ds.Tables("YFILEURO.OCTES00F").Rows(i).Item(" TotaleCat").ToString )
    next
    Lblmessage.text = ""& val


    ma sicuramente quanto suggerito da Pietro09 è molto più pulito ed efficace

    Grazie a tutti
    :gren:
    -||> xamax <||-

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.