Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Dataset e datarow estrarre valori senza parsing
mercoledì 25 ottobre 2006 - 17.16
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
mer 25 ott 2006 - 17:16
ciao a tutti ho questo problemino:
ho un dataset ,creato da un dataadapter, con due colonne i cui valori sono system.int16
estraggo le righe così
foreach( dataRow a in myDataset.Tables[0].Rows)
ora se prendo la prima colonna della riga
a[0]
io penserei che mi ritorni un int ma se faccio, per eesmpio, il controllo a[0]<7 ho un errore
perchè mi viene detto che non è possibile il cast tra un object e un int in modo diretto
allora ho provato così (int)a[0]<7 e questa volta mi viene detto che non è possibile fare questa conversione
devo fare così int.Parse(a[0].toString()) <7 ma questo mi pare uno spreco di risorse
perchè devo fare questi giri di parsing quando nella colonna 1 della riga del dataset ho già un int ????
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
mer 25 ott 2006 - 22:58
Il dataset non è tipizzato per cui tutti i valori dei campi sono object anche se a livello di database li hai definiti come interi. Comunque basta fare : Convert.ToInt16(a[0]) < 7 ....fammi sapere..ciao
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
gio 26 ott 2006 - 09:29
grazie per la risposta...
effettivamnte facendo il parsing come dici te funziona e probabilmente evito un'operazione visto che non converto in stringa prima ...
il mio dubbio però è che se faccio :
a[5].GetType()
ottengo system.int16 e quindi da qui dedurrei che quello che c'è dentro ad a nella colonna 5 è un int...
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
gio 26 ott 2006 - 13:17
si effettivamente hai ragione....non puoi fare un accesso tipizzato però i tipi di dati sono corretti....
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
gio 26 ott 2006 - 13:18
se la risposta risolve il tuo problema accettala per favore...grazie mille
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
gio 26 ott 2006 - 13:20
si ok scussa adesso la accetto ma dimmi non è possibile allora estrarare il dato senza fare il parsing?
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
gio 26 ott 2006 - 13:21
no...non è possibile....dovresti crearti un dataset tipizzato....
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
gio 26 ott 2006 - 13:23
e come si fà ? io lo creo da dataadapter...
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
gio 26 ott 2006 - 14:03
diciamo che la cosa un pochino più complicata....devi inserire un file .xsd nel progetto... e crearti un elemento per ogni tabella del database di cui hai bisogno....tutto questo se hai VS2003...ma con il VS2005 diventa tutto più facile....basta che trascini le tabelle di cui hai bisogno nel dal Server Explorer (nel quale devi creare una connessione al database di cui hai bisogno). Tutto ciò ti genera una classe che deriva da Dataset con le relative tabelle...per cui per accedere ad una tabella userai dataset.NomeTabella.....e per accedere ai campi.....tabella.nomeCampo che sarà già tipizzato....in questo momento non saprei indirizzarti su un buon articolo da seguire (anche perchè sono al lavoro)....però tienimi aggiornato..ciao
bule
Profilo
| Junior Member
101
messaggi | Data Invio:
gio 26 ott 2006 - 16:11
finalmente sono giunto al problema...uso visual dtudio 2005 e pensavo che accedere al dataset tipizzato fosse immediato
invece al posto fare il ciclo foreach come facevo prima
foreach(datarow a in mio.dataset.tables[0].rows)
dovevo fare
foreach(ClasseDiMioDataset.MiaTabell1Row a in miodataset.MiaTabella1.rows)
e ora facendo a.NomeColonna ottengo il valore nel tipo di dato che avevo settato int16 appunto
penso che in questo modo, cioè utilizzare il dataset tipizzato, oltre che essere più elegante e comprensibile sia più rapido perchè comunque elimino dei parsing
grazie mille per la gentilezza
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
ven 27 ott 2006 - 08:51
in pratica già avevi risolto il problema...dovevi solo usare lo strumento correttamente....buon lavoro
Torna su
Stanze Forum
Elenco Threads
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 !