SELECT UNA TABELLA DATASET

sabato 10 luglio 2010 - 12.21

fixed Profilo | Junior Member

ciao ho il seguente problema:

HO una tabella del mio dataset che si chiama AGENTI e formata da 5 Colonne.

come posso fare a recuperare i valori di alcune colonne?

paoval72 Profilo | Senior Member

Ciao. Spero di avere capito.
se devi fare una select su quella tabella, il primo modo (magari contorto, ma logico) che mi viene in mente è:
1) faccio la select sulla tabella del mio dataset: mi restituisce una riga di array.
2) Creo un clone (=copio la struttura) della mia tabella
3) ciclo sulla riga di array: per ogni array, creo una nuova riga della nuova tabella
4) Copio i datti della riga selezionata nella nuova riga
5) riassocio la nuova riga alla nuova tabella

Vediamo il codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Sev invece non ho capito, dacci qualche indicazione ( e magari qualche riga di codice) in più.
Ciao!

fixed Profilo | Junior Member

ciao grazie per la risposta, mi è stata molto utile.
ti spiego il problema che si presenta ora:

effettuo la seguente select

string expression = "CodAgente =" + codAgeCli; //dove codAgeCli è una variabile il cui valore lo calcolo prima
DataRow[] foundRows;


foundRows = dataSet.AGENTI.Select(expression);
//qui mi dà il seguente errore : Impossibile eseguire l'operazione '=' su System.String e System.Int32.

LA TABELLA AGENTI del dataset è cosi fatta
ID : System.Int32
codAgente = System.String

ho risolot mancavano gli apci singoli nel valore della stringa!

una domanda sul codice che mi hai postato:
quando copi il contenuto della riga calcolata con la select in un altra riga,
c'è un modo per dire: copia tutto (come mi hai fatto vedere) però aggiornami il campo x con un nuovo valore?

Grazie

paoval72 Profilo | Senior Member

Ciao. Se la variabile codAgeCli è un Int, ti conviene convertirla in stringa (
Convert.ToString(codAgeCli)
), anche se teoricamente VS fa il cast implicito.
E nella query ti consiglio di inserire tra apici singoli (' e ') il valore che cerchi, essendo sulla tabella un valore stringa:
string expression = "CodAgente =' " + codAgeCli + " ' ";

Fammi sapere.
Ciao e buona domenica,
PV

fixed Profilo | Junior Member

ciao scusa ho letto ora il tuo post: era riuscito a individuare il problema :)
meglio cosi grazie mille

ti chiedo sul tuo codice che hai postato:

quando copi il contenuto della riga calcolata con la select in un altra riga,
c'è un modo per dire: copia tutto (come mi hai fatto vedere) però aggiornami il campo x con un nuovo valore?

Grazie

paoval72 Profilo | Senior Member

Per "campo x" che cosa intendi? Tutti i valori di una colonna o solo il valore di una determinata cella di una determinata riga?

fixed Profilo | Junior Member

ciao, vorrei copiare tutti i valori di una riga A della TABELLA A in una riga B della tabella B,

però vorreri che il campo per esempi NUMERO_TELEFONO venga aggiornato nella riga B della tabella B con nuovo valore

spero di esseremi spiegato bene.

grazie
gianluca

paoval72 Profilo | Senior Member

Ciao. Si può fare, a patto che tu sappia cosa va modificato.
Col ciclo che ti ho passato, puoi agire sulla tua riga selezionata prima di aggiungerla alla tabella clonata:

foreach (DataRow drw in dr) { DataRow dr1 = dtCopy.NewRow(); dr1.ItemArray = drw.ItemArray; // come esempio, modifico il NUMERO_TELEFONO con un altro di fantasia dr1["NUMERO_TELEFONO "] = "034758382347"; dtCopy.Rows.Add(dr1); dtCopy.AcceptChanges(); }

L'idea generale è che puoi comunque fare tutti i tuoi trighi sulla riga clonata una volta che l'hai creata e popolata con i dati e prima di riassociarla ad una tabella.
Potresti anche volere solo aggiungere un prefisso all'inizio del numero telefonico:
... dr1["NUMERO_TELEFONO "] = "+039-0368"+dr1["NUMERO_TELEFONO"].ToString(); dtCopy.Rows.Add(dr1); ...

Ovviamente, in questo caso andrebbe ad aggiornare allo stesso modo tutte le righe che hai filtrato con la select.
Spero ti sia utile. resto comunque a disposizione.
PV


fixed Profilo | Junior Member

perfetto, era quello che mi serviva.

grazie mille

ciao
gianluca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5