Ciao, m'infilo anch'io visto che mi sveglio presto!!!
>ok, vi posto il codice e vediamo dove sbaglio:
>
>ds1 = new DataSet();
>ds1 = qui richiamo un web method di un web service che mi restituisce
>un dataset;
>
>if(ds1.Tables[0].Rows[0]["id"] != null) // questa riga la uso
>per capire se mi è stato restituito un dataset senza record o
>meno, se avete una soluzione + elegante, sono ben lieto di impararla
>{
>DataColumn negozio = new DataColumn("negozio", System.Type.GetType("System.Int16");
> ds1.Tables[0].Columns.Add(negozio);
> ds1.Tables[0].Rows[0]["negozio"] = valore da inserire;
>}
>return ds1;
da quanto posso vedere, il problema sta proprio nel fatto che manca il ciclo proposto da Balfaz: nel tuo codice fai il controllo sulla rows[0] e inserisci il valore nella rows[0]. ma se hai 2 o più righe, devi aggiornare anche le altre rows, eseguendo il foreach che ha detto Balfaz. Ovviamente è da premettere che dipende anche in che parte del codice fai questa add di colonna.
Riguardo al controllo sul dataset, a rigor di logica potrei prevedere buona parte degli errori possibili. Ad esempio, se il web service va in errore, il dataset sarà null e quindi anche senza tables. Perciò proporrei un ulteriore passaggio:
if(ds1!=null && ds1.Tables[0].Rows.Count>0)
Dove controllo che il dataset non sia nullo: in tal caso passo poi a vedere se la tabella che mi restituisce (se non ci sono righe mi darà comunque lo schema della tabella) ha almeno una riga.
Un saluto a tutti,
PV