Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    3

    VB 2008 - Selezionare un n° di righe dalla grid

    Ciao a tutti!

    E' la prima volta che scrivo su questo forum!
    Volevo chiedervi un aiuto, non avendo più la mia professoressa

    Con Visual Basic 2008 sto creando un piccolo programma per fare il giudice in una gara di SPL poichè sono un socio del mio club.
    Questo programma legge il n° del candidato, il nome del candidato e il risultato e questi 3 dati me li salva sulla grid.
    E fino qua tutto ok, ma arriva un passaggio che non so come fare ovvero quello dell'ordinamento dal più grande al più piccolo e in seguito la selezione di un numero di voci..

    Per il caricamento della grid non ho usato vettore, vi scrivo la sintassi:

    SPLRISB.GridSPLA.Item(0, rigaa).Value = txtnumspl.Text
    SPLRISB.GridSPLA.Item(1, rigaa).Value = txtnomespl.Text
    SPLRISB.GridSPLA.Item(2, rigaa).Value = txtrisultatoSPL.Text

    riga = riga + 1


    questo è il risultato dell'inserimento:




    Adesso volevo mettere un bottone ordina (dal più grande al più piccolo valore del risultato della prova) e poi volevo accanto un'altra Grid che dopo che viene svolto l'ordine mi scrive tipo i primi 5 candidati.
    Qualcuno riesce gentilmente a darmi una mano?

    Vi ringrazio

    Rosy http://img521.imageshack.us/img521/2653/gridspl.jpg
    Rosy

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Moderazione

    VB ha un forum dedicato: Visual Basic e .NET Framework.

    Sposto la discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Per ordinare le righe c' è il metodo Sort:
    http://msdn.microsoft.com/it-it/libr...view.sort.aspx
    codice:
    DataGridView1.Sort(DataGridView1.Columns(0), ListSortDirection.Ascending)
    'o
    DataGridView1.Sort(DataGridView1.Columns(0), ListSortDirection.Descending)
    dove lo zero di "Columns(0)" indica la colonna a cui fare riferimento per ordinare le righe, se vuoi ordinare in base alla seconda colonna metti 1 e cosi via.
    Per la seconda datagridview non so quale sia la soluzione più semplice quindi passo...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    3
    scusami solo una domanda, ho scritto quello che mi hai riportato tu ma ovviamente mi dice che non ho dichiarato "ListSortDirection", anche perchè vorrei che ordinasse all'interno della grid..

    scusami se ti chiedo un aiuto cosi grandeee



    Grazie
    Rosyhttp://imageshack.us/photo/my-images...magineiwv.png/
    Rosy

  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Devi importare il namespace System.ComponentModel.
    Il termine incriminato dovrebbe essere sottolineato ed alla fine c' è un trattino rosso, se ci passi con il mouse compare un' esclamativo, clic, "importa System.ComponentModel"...
    Oppure scrivi come prima riga: Imports System.ComponentModel
    Oppure scrivi: System.ComponentModel.ListSortDirection.Descending

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    3
    ok ti ringrazio sostanzialmente mi funziona ma non riesco a capire un errore che lui mi fa in lettura..
    Io ordino la grid a seconda del risultato che scrivo in una test, questo risultato può essere anche un valore con la virgola.
    La funzione di ordinamento che mi ha scritto tu mi da un bug ovvero
    Se scrivo 9 lo legge come 90
    Se scrivo 103 legge come 10

    Scusatemi, giuro che dopo questo non rompo più =P

    http://imageshack.us/photo/my-images/195/ordinea.jpg/
    Rosy

  7. #7
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Non è un bug...ma ignoranza mia...il datagridview considera i dati come testo e non come valore.
    Ho googlato un pò e per risolvere non ho trovato altra soluzione che quella di usare un dataset e specificare il tipo di dati della colonna, esempio:

    codice:
    Imports System.ComponentModel
    
    Public Class Form1
    
        Dim ds As New Data.DataSet
    
        Private Sub Form1_Load() Handles MyBase.Load
            ds.DataSetName = "prova"
            ds.Tables.Add("colonne")
            ds.Tables("colonne").Columns.Add("numero")
            ds.Tables("colonne").Columns("numero").DataType = System.Type.GetType("System.Decimal")
            ds.Tables("colonne").Columns.Add("testo")
            DataGridView1.DataSource = ds.Tables(0)
        End Sub
    
        Private Sub Button1_Click() Handles Button1.Click
            DataGridView1.Sort(DataGridView1.Columns("numero"), ListSortDirection.Descending)
        End Sub
    
        Private Sub Button2_Click() Handles Button2.Click
            DataGridView1.Sort(DataGridView1.Columns("numero"), ListSortDirection.Ascending)
        End Sub
    
    End Class
    Con il dataset puoi anche salvare i dati e caricarli.

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.