Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: esempio array

  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    esempio array

    Sapete dove posso trovare l'esempio di un array che si "riepie" con i dati di un db.
    Sonia

  2. #2
    Non credo di aver capito bene la domanda, cmq i dati di un db solitamente sono in un array (es. datareader o datatable). Quindi non ti rimarrebbe che ciclare su un array per riempirne un altro es. di una datatable che finisce in un generico arraylist
    codice:
    Dim nuovoArray As New ArrayList
    For Each _dr As DataRow In tuadatatable.Rows
      nuovoArray.Add(_dr("nomecolonna"))
    Next
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Allora io carico dei dati in un datalist e ho la necessità di salvarmi gli id di questo datalist in una variabilie di sessione (il fatto di salvarli in una variabile di sessioene per il momento si può accontonare mi accontento di stamparli)

    io ho fatto così:

    al page load lancio la funzione ch eriempie il mio DataList1 (access è una mia classe che mi restituisce il risultato della query)

    public void CollegaGriglia()
    {
    ArrayList nuovoArray = new ArrayList();

    // CON FW 2.0 METTO SELECTEDVALUE
    string sql = "Select * from schizzi ORDER BY nome ASC";
    DataList1.DataSource = Access.visRecord4(sql);

    foreach (DataRow _dr in DataTable.Row)
    {
    nuovoArray.Add(_dr("idschizzo"));
    }

    DataList1.DataBind();
    }

    Però il mio compilatore non concorda molto

    'System.Web.UI.WebControls.DataList' does not contain a definition for 'Rows'

    '_dr' is a 'variable' but is used like a 'method'

  4. #4
    VVoVe: arghhh....
    c'e' un cincinino di confusione nel codice .
    Poi non so se lo hai riportato preciso preciso. Cmq, ad es.
    foreach (DataRow _dr in DataTable.Row)
    e' sbagliato. Nel codice che hai riportato non vedo nessun oggetto (di tipo datatable) chiamato DataTable. Perdipiu', anche se ci fosse non sarebbe una grande idea chiamare una istanza di tipo DataTable con lo stesso nome del suo tipo (es. DataTable appunto). In piu', la collection di datarow della classe DataTable si chiama Rows e non Row. Quindi
    codice:
    foreach (DataRow _dr in unatuadatatable.Rows)
    andrebbe gia meglio. Che cosa restituisce
    Access.visRecord4(sql);
    ?
    Perche' dopo aver assegnato il risultato della funzione alla datalist non chiami subito il suo databind?
    Saluti a tutti
    Riccardo

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

    Re: esempio array

    Originariamente inviato da Sonikag
    Sapete dove posso trovare l'esempio di un array che si "riepie" con i dati di un db.
    Sonia
    Dando una risposta in senso stretto, in base alla domanda la risposta esatta è la prima di riccardone

    oppure, ma è lo stesso:

    1) recupero la dimensione del vettore
    2) dimensiono il vettore
    3) in un ciclo su un datareader riempio il vettore

    E notare bene, in base alla domanda, che non c'entra niente datalist, datagrid o simili

    Pietro

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    allora parto dal fondo.

    Access.VisRecord4 restituisce proprio una datatable:

    codice:
    		public static DataTable visRecord4 (string SQL)
    		{
    					SqlConnection conn = new SqlConnection(connString);
    			conn.Open();
    			SqlCommand comm = new SqlCommand(SQL ,conn);
    			SqlDataAdapter DA = new SqlDataAdapter(comm);
    			DataTable MyTable = new DataTable();
    			DA.Fill(MyTable);
    			conn.Close(); 
    			return MyTable;
    		}
    Ho corretto il mio codice così:

    codice:
                string sql = "Select * from schizzi ORDER BY nomeschizzo ASC";
    			DataList1.DataSource = Access.visRecord4(sql);
                DataList1.DataBind();
    
                ArrayList nuovoArray = new ArrayList();
    
                DataTable MyTable2 = new DataTable();
    
                foreach (DataRow _dr in MyTable2.Rows)
                {
                    nuovoArray.Add(_dr("idschizzo"));
                }
    però quando faccio nuovoArray.Add(_dr... mi dice che '_dr' is a 'variable' but is used like a 'method'

    ---

    Per rispondere a Pietro nel mio caso non so anticipatamente quanto è la dimensione del vettore.

    Diciamo che con la query sopra devo Riepire un datalist e riempire un array con gli id.

    Sonia

  7. #7
    allora, se vuoi puoi correggere gia che ci siamo la funzione visrecord cosi (p.s. il nome di una funzione dovrebbe nei limiti del possibile far capire a chi la usa a cosa serve quindi perche' non la chiami ad esempio GetDataTable?)
    codice:
    public static DataTable VisRecord4 (string SQL)
    		{
    			SqlDataAdapter da = new SqlDataAdapter(SQL, connString);
    			DataTable myTable = new DataTable();
    			da.Fill(myTable);
    			return myTable;
    		}
    il resto del codice ha 2 errori abbastanza evidenti.
    1. Crei inutilmente una datatable nuova (datatable2) e quindi vuota per poi ciclare sui suoi record (che non esistono).
    2. Usi c# e quindi l'errore e' nel cercare di accedere ad una proprieta' dell'oggetto con le parentesi tonde al posto delle quadre
    codice:
                string sql = "Select * from schizzi ORDER BY nomeschizzo ASC";
    DataTable MyTable2 = Access.visRecord4(sql);
    DataList1.DataSource = MyTable2;
    DataList1.DataBind();
    ArrayList nuovoArray = new ArrayList();
    foreach (DataRow _dr in MyTable2.Rows)
    {
    nuovoArray.Add(_dr["idschizzo"]);
    }
    Per rispondere a Pietro nel mio caso non so anticipatamente quanto è la dimensione del vettore.
    Le datatable (cosi come in genere tutti gli array) hanno delle comode funzioni che dicono di quante righe sono composte es. tuadatatable.rows.count
    Saluti a tutti
    Riccardo

  8. #8
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie rick... ultima cosa... come lo posso mettere in stampa? (così controllo se i dati sono giusti)

    Ciao
    Sonia

  9. #9
    codice:
    tuanuovadatagridpresentesulform.datasource = nuovoarray
    tuanuovadatagridpresentesulform.databind
    Saluti a tutti
    Riccardo

  10. #10
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie rick

    Il dg dal lato "html" come lo imposto? Non ho mai riempito dg da array.

    <aspataGrid ID="rep1" runat="server">
    <ItemTemplate>


    <%# DataBinder.Eval(Container.DataItem, "COME CHIAMO IL SINGOLO VALORE???")%>

    </ItemTemplate>
    </aspataGrid >

    ---

    Se è troppo laborioso mi basta un response.write, mi serve solo per vedere i dati che vanno scritti nell'array.

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.