Stringa in un intero

martedì 19 giugno 2012 - 18.11
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows Server 2008 R2

dannyv Profilo | Junior Member

Xiao a tutti..avrei un quesito

faccio una query da db e salvo il risultato in un datatable che poi sarà il datasource di una cgridview. i lproblema è che alcune colonne hanno un valore di tipo int al quale corrisponde un valore di tipo string(ad esempio id_personaggio può assumere 1 o 2 o 3 o 4 che corrispondono a pippo, pluto, paperino o topolino(ok è un esempio...)) ho provato a ciclare su tutte le righe della datatable per impostare li valore intero al corrispondente in stringa ma ovvimanete ha dato errore..esi ste un modo per poterlo fare senza appesantire la query con troppi join?

ciao e grazie

dan

P.S. ho provato anche ad applicare un cast nel select della query...ma non ha funzionato perchè mi diceva che la colonna era in sola lettura..ora non so se è un comportamento normale o se mi è stato dato dal fatto che ho usato male il cast

bobo89 Profilo | Junior Member

Allora se ho capito ben tu hai una stringa che è un valore e devi convertirlo in Intero.
se provi il cast bruto (INT) ti scoppia tutto in faccia. Devi prima di tutto ripulire la stringa da possibili spazi prima e dopo con una funzione trim() delle stringe dopo di che puo effettuare il parse della stringa ad intero con Int32.parseInt("77");
oppure con un Int32.TryParse che dovrebbe rilanciarti un eccezione in caso di parse non riuscito, oppure incpsuli il primo modo in un try Catch.

Facci sapere!!! Buon Parse!!!
Zito Piero
info@makerit.it
http://www.makerit.it

dannyv Profilo | Junior Member

Ciao...mmm non sembrerebbe funzionare


il mio caso è questo

foreach (DataRow dr in dt.Rows) { if (Convert.ToString(dr["xyz"]) == "1")//il campo è di tipo int dr["xyz"] = "Pippo";//esiste un modo per poter inserire una stringa?

esiste un modo per poter mettere li una stringa? anche un modo barbaro che sia schifoso dal punto di vista del programmatore eheheh

ciao e grazie

dan

bobo89 Profilo | Junior Member

dr["xyz"] questo è un intero??? tu vuoi trasformare da intero a stringa o stringa-intero???
Zito Piero
info@makerit.it
http://www.makerit.it

bobo89 Profilo | Junior Member

allora da quello che ho capito tu hai dr["xyz"] che è una stringa contente un intero e poi hai un elenco di nomi associati ad un id che è di tipo intero, ora tu voui sostituire il contenuto del dr contente la stringa numero con il nome della persona....

mi chiedo una cosa i dati del dr da dove li peschi ?? se li prendi da un db perche non fai una join??? cosi ti ritrovi direttamente il nome della persona messo li senza vari magheggi!!!
Zito Piero
info@makerit.it
http://www.makerit.it

dannyv Profilo | Junior Member

beh il dr["xyz"] contiene un intero..lo converto a stringa tnato per fare il controllo dell' if e poi vorrei mettere una stringa in un intero...si avevo pensato di fare tutto via query visto che i dati li prendo dal db..ma era per non appesantire troppo la query ch vado a fare visto che per tutti i controlli che dovrò fare..dovrei aggiungere nel join altre 3 tabelle....oppure potrei scrive al signor C# chiedendogli di permettere l' inserimento di stringhe nel campo intero :P

vabbè se proprio non trovo niente allungherò la query...non esiste sennò un qualche metodo che trasforma il valore della select? per dire

select a1, a2, a3, a4 dove a4 è di tipo int , trasformarla in select a1, a2, a3, (string)a4 ...qualcosa di questo tipo?

bobo89 Profilo | Junior Member

Non ha senso permettere di mettere una stringa al posto di un int!!! a questo punto quel campo che hai dichiarato int dichiaralo come stringa e buonaNotte:-) insomma fatti un id String e non Int!!
Zito Piero
info@makerit.it
http://www.makerit.it

dannyv Profilo | Junior Member

Grazie per il supporto :)
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5