Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Scorrere le colonne di una Rows

    Ciao a tutti.
    Vorrei fare una cosa apparentemente semplice, ma che non riesco a inquadrare con ASP.NET-C#...
    leggere il contenuto di una cella su una riga estratta da un db.

    Spiego.

    ho estratto una riga da un archivio con una select del tipo
    "SELECT * FROM Articoli WHERE idArt='" + codArt......

    l'esito della select come doveroso è un record contenente l'articolo (controllato e i campi ci sono.

    Poi volevo estrarre dalla riga solo alcuni elementi, giusto per indirizzarli a delle aree di output infomatico e faccio cosi...

    codice:
    if (myDS.Rows.Count > 0 )
    {
        //azione da fare se il record è valorizzato
        //la variabile ArtInfo è stata dichiarata prima come stringa
        this.ArtInfo = myDS.Columns[0].ToString() + ";" +myDS.Columns[2].ToString() + ";" +myDS.Columns[3].ToString() ;
    
    ..........
    
    
    
    }
    else
    {
    //azione svolta nel caso non abbia trovato nulla
    response.write ("Errore estrazioen dati.")
    }

    qundo vado in esecuzione e debug, scopro che la stringa ArtInfo contine si deo valori ma no quelli che interessano a me, bensi i nomi dei campi che io ho dato nel DB..

    come posso fare?
    ho pensato anche di posizionare il mio puntatore sulla riga 1 ma mi da un errore

    myDs.Rows[1]

    Grazie a tutti

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    codice:
    myDS.Tables[0].Rows[X]["nomecampo"]
    oppure

    codice:
    myDS.Tables[0].Rows[X][Y]
    dove X è l'indice della RIGA ed Y quello della COLONNA.

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    PS: sul DataSet è impossibile fare "IF DataSet.Rows.Count > 0". Devi farlo sulla sua prima tabella (quella con indice 0). Il dataset non ha la proprietà "Rows"...

    Cioè dovresti controllare se:

    NomeDataSet.Tables[0].Rows.Count > 0

  4. #4
    devo sempre inserire il riferimento alla Table?
    dato che sto usando un dataset che ha estratto i dati da una sola tabella...

    non posso fare

    myDS.Rows[x][y] ?

    grazie dell'aiuto...

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    no, Il dataset non ha la proprietà "Rows". non so come riesci ad andare in debug e trovarti la stringa...dovrebbe andare in errore in compilazione

  6. #6
    no io vado in debug, e vedo chenella stringa di ritorno ci sono dei valori.
    (mi fai venire un dubbio....)

    scusa, hai ragione...non ho cambiato la sigla del campo che raccoglie le info di ritorno ed è un DataTable....

    quindi in vece di avere un DataSet come valore di ritorno ho un DataTable, ecco perche mi veniva Rows....

    scusa.

  7. #7
    HO trovato.
    GRAZIE .... non ci sarei proprio arrivato senza il tuo suggerimetno.


    in pratica devo indicare sia la riga, che la colonna.....

    myDS.Rows[0][0]

    cosi posso leggere sulla riga che voglio, e nella colonna che voglio...

    grazie

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ok, comunque un piccolo consiglio: nella seconda coordinata NON mettere l'indice, perchè se un giorno ti verrà in mente di cambiare la posizione del campo in tabella (ad esempio aggiungendo un campo prima), non funzionerà più nulla. Ad esempio, lavoravi sulla colonna 6, myDS.Rows[0][6], che dovrebbe diventare la 7, --myDS.Rows[0][7]--, e le pagine non funzioneranno più


    Metti sempre -il nome- della colonna, cosi' ti salvi da spostamenti di campi nel DB.

    Altro consiglio: Cambia il nome del DataTable in myDT !

  9. #9
    ... z<i zi

    Grazie!

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.