+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Estrarre record "n" da dataset

  1. #1
    kar64 non è in linea Scolaretto
    Post
    115

    Estrarre record "n" da dataset

    Salve a tutti.

    Con questo codice estraggo tutti i record che nel mio mdb soddisfano la condizione data:

    codice:
     sql = "SELECT * FROM Italiano WHERE Usata = 'N' and len(Parola) = " & id
    
                    Dim dataadapter As New OleDbDataAdapter(sql, objconn)
                    objconn.Open()
                    dataadapter.Fill(ds, "Parola")
    Ora all'interno di questo filtro avrei necessità di estrarre "casualmente" un record. Quindi scrivo:

    codice:
                    records = ds.Tables("Parola").Rows.Count
                    If records > 0 Then
                        estratto = rnd1.Next(records)
                    End If
    ma non so come estrarre il record "estratto" dal risultato della select.

    Potreste aiutarmi ?
    Grazie
    Ultima modifica di AntonioG; 08-10-2019 06:28 

  2. #2
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    303
    Hai provato con
    codice:
    ds.Tables("Parola").Rows(rnd1.Next(records))

  3. #3
    kar64 non è in linea Scolaretto
    Post
    115
    Quote Originariamente inviato da Sgrubak Visualizza il messaggio
    Hai provato con
    codice:
    ds.Tables("Parola").Rows(rnd1.Next(records))
    Grazie per la soluzione.
    Ho dovuto modificarla così:

    codice:
    coord_parola = ds.Tables(0).Rows(rnd1.Next(records)).Item(0)
    e funziona, altrimenti mi dava errore.
    Non sapevo che si potesse passare una funzione come parametro.

    Grazie.

  4. #4
    Dev-01 non è in linea Scolaretto
    Post
    451
    Infatti tu non passi la funzione come parametro ma il suo risultato.

    La funzione restituisce un dato nel formato Tipo-Valore ed è quello che viene poi elaborato.

    Come in matematica, i primi calcoli ad essere eseguiti sono quelli contenuti nelle parentesi più interne per cui il programma esegue prima tutte le funzioni e, ottenuti i risultati, li utilizza nelle funzioni/routine più esterne.

  5. #5
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    303
    Quote Originariamente inviato da kar64 Visualizza il messaggio
    ...Ho dovuto modificarla così...
    Questo perché così arrivi al valore contenuto nel primo campo del record e non al record stesso. Io mi trovo più comodo ad utilizzare l'overload che prevede la stringa come parametro, così da evitare restituzioni di valori strani nel caso in cui dovessi alterare la struttura della tabella, magari aggiungendo qualche colonna.

  6. #6
    kar64 non è in linea Scolaretto
    Post
    115
    Grazie per i suggerimenti !!

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi