Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    DataSet creato con i dati provenienti da due tabelle

    ragazzi la mia idea è quella di creare un DataSet dal nulla e di riempirlo con i dati filtrati provenienti da due tabelle distinte

    con il seguente codice

    dim ds as new DataSet("newDS")
    dim dTable as new DataTable("dati")
    dTable.Columns.Add("dato1", System.Type.GetType("System.String"))
    dTable.Columns.Add("dato2", System.Type.GetType("System.String"))
    dTable.Columns.Add("uID", System.Type.GetType("System.Int32"))
    dTable.Columns("uID").AutoIncrement = true

    ds.Tables.Add(dTable)

    e poi con due cicli FOR che iterano tra i dati pescati dalle due tabelle aggiungo i dati
    dim dr as DataRow = dTable.NewRow()
    dr(0) = "DATO PRESO DAL DB"
    dr(1) = "DATO PRESO DAL DB"
    dTable.Rows.Add(dr)

    a questo punto però la mia idea è quella di estrarre dei dati da questo dataset con una classica Query SQL
    è possibile ?
    come posso fare?
    ciao e grazie a tutti

  2. #2
    Beh io userei innanzitutto un DataView

    Dim DW as new DataView = DT.DefaultView

    E poi puoi accedre al metodo RowFIlter


    DW.RowFilter = "CAMPO = VALORE" Come in SQL

  3. #3
    ottimissimo!!
    grazie infinite

  4. #4
    Originariamente inviato da raffaeu
    Dim DW as new DataView = DT.DefaultView
    forse la sintassi piu' corretta e'
    codice:
    dim DW as new DataView(DT)
    Saluti a tutti
    Riccardo

  5. #5

    Re: DataSet creato con i dati provenienti da due tabelle

    Originariamente inviato da brutusin
    e poi con due cicli FOR che iterano tra i dati pescati dalle due tabelle aggiungo i dati
    per curiosità... ma perche' fai dei cicli for e credi una datatable a mano? non sarebbe meglio mettere nel dataset una tabella creata automaticamente in base alla query sul db?
    Saluti a tutti
    Riccardo

  6. #6
    ma sinceramente non ci avevo pensato mi sono detto devo prendere i dati estratti con una query e metterli nel dataset poi faccio un'altra query in un'altra tabella e metto i dati sempre nello stesso dataSet
    poi da quel dataset filtro quello che mi interessa

  7. #7
    Originariamente inviato da brutusin
    ma sinceramente non ci avevo pensato mi sono detto ...
    sempre per curiosita... ma allora il "dato preso da db" come lo prendi?
    dr(0) = "DATO PRESO DAL DB"
    ...
    Saluti a tutti
    Riccardo

  8. #8
    Da DataReader

    CN.Open
    While DR.Read
    stringa = DR.GetString(0)
    Wend
    DR.Close

    DataView

    DW(indice_riga)("NOME_CAMPO")


  9. #9
    Originariamente inviato da raffaeu
    Da DataReader
    ma sei brutusin travestito da raffaeu? oppure tiri ad indovinare la risposta ma cosi poi si rischia un po' di confusione.
    Cmq...
    CN.Open
    While DR.Read
    stringa = DR.GetString(0)
    Wend
    DR.Close
    DataView
    DW(indice_riga)("NOME_CAMPO")
    Se il risultato che si vuole ottenere e' avere una datatable (con conseguente possibilita' di usare una dataview), la strada migliore e' quella di usare un datadapter, passargli una query sql di selezione con una connectionstring e riempire con la funzione fill una datatable. Se e' necessario mischiare risultati provenenti da query diverse ma con la stessa struttura (stesse colonne per intenderci) si puo' ricorrere alla funzione merge del dataset.
    Con il codice che hai postato tu (ma non so se e' uguale a quello di brutusin) devi istanziare un datareader per leggere il record e all'interno del while .... prendere il valore per metterlo in una riga di una datatable che andra' poi sempre nello stesso while aggiunta alla datatable prestando xo' anche attenzione alla lettura del datareader e degli eventuali null che arrivano dal db oltre che alla corretta chiusura della connection alla fine e/o in caso di errori.
    Saluti a tutti
    Riccardo

  10. #10
    Ma no erano i due esempi diversi ....

    Dataview

    DataView(0)("NOME_CAMPO")

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.