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
ASP.NET 1.0/1.1
Help Casting sql e c#
martedì 14 settembre 2004 - 09.19
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ozziii
Profilo
| Newbie
22
messaggi | Data Invio:
mar 14 set 2004 - 09:19
E ormai 2 giorni che provo a correggere questo errore:
Invio una query dove ho come risultato un count(*) [as n_pose]
Logicamente count() restituisce un intero!
Quando vado a convertire il DataRow in in (int)riga[n_pose]
Mi da un errore! Specified cast is not valid
Non è valido il cast da ogetto e int
Se provo a fare lo stesso cast con un campo numerico tipo id contenuto nella tabella non ho nessuna eccezione!!
//---------------------ecco il codice--------------------------
string str= ConfigurationSettings.AppSettings["sconn"];
// richiama la variabile stringa di connessione nel web.config
OleDbConnection cn = new OleDbConnection(str);
cn.Open();
string sql= "SELECT *,user.nick as nicka FROM [user] LEFT JOIN [SELECT nick , int(count(*)) as n_pose FROM risposte GROUP BY nick ]. AS ris ON ris.nick=user.nick";
OleDbCommand cmd = new OleDbCommand(sql, cn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"user");
DataColumn dc = new DataColumn();
dc = new DataColumn("grado", Type.GetType("System.String"));
dc.ColumnMapping = MappingType.Attribute;
ds.Tables["user"].Columns.Add(dc);
dc = new DataColumn("qualifica", Type.GetType("System.String"));
dc.ColumnMapping = MappingType.Attribute;
ds.Tables["user"].Columns.Add(dc);
//---------------Modifica data grid-----------------
foreach(DataRow riga in ds.Tables[0].Rows)
{
if ((int)riga["n_pose"] > 500 ) riga["grado"]="rank5.png";//riga errata
//-------ecc...
ho pensato a due soluzioni 1 faccio il cast da sql (che ignoro come si faccia)
oppure casto in maniera diversa da asp.net
ho provato di tutto tipo:
prima conversione in stringa e poi in int;
assegno il valore riga[n_pose] a unaltra colonna di tipo int creata da me nel DataSet
non so + come fare HELP me!!!!!!!!
GvnnRules
Profilo
| Senior Member
436
messaggi | Data Invio:
mar 14 set 2004 - 12:11
E' un caso molto strano, potrei dirti di provare a controllare se il campo [n_pose] non è nullo, magari stai facendo un cast in int di un valore nullo e ti da errore.
ciaoz
Gvnn
ozziii
Profilo
| Newbie
22
messaggi | Data Invio:
mar 14 set 2004 - 12:32
si infatti.
Mi sa che sql restituisce null se il count è 0 ma come faccio a trasformarlo in int lo stesso?
ozziii
Profilo
| Newbie
22
messaggi | Data Invio:
mar 14 set 2004 - 14:19
l'if è inutile perche non è un errore di run-timer ma un errore di compilazione comunque ho risolto con una query ad'oc grazie per l'aiuto lo stesso :-))
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 !