29 messaggi dal 29 aprile 2002
Ciao.

Sto diventando matto.

Lancio, via C#, una Stored Procedure alla quale passo 4 parametri, 3 string e 1 int.
In alcuni casi funziona perfettamente mentre in altri mi restituisce l'errore System.Data.SqlClient.SqlException: Error converting data type varchar to numeric

I valori che passo alla stored vengono presi in modo automatico da 4 textBox valorizzate grazie ad un'altra SP, per cui io non tocco i dati...

Oltre a darmi una chiodata in fronte, cosa posso fare?

Vi ringrazio in anticipo, anche se non avrete risposte...
Ciao.
Quando esplode che valore ha il parametro numerico?

Matteo Casati
GURU4.net
29 messaggi dal 29 aprile 2002
Quando esplode?

Il parametro numerico, in questi casi, ha valore 1 oppure 2 oppure 5...
Sto diventando matto... C'è sicuramente qualcosa che no va nel mio codice ma proprio non capisco perchè solo in certi casi...
29 messaggi dal 29 aprile 2002
Ora ho capito che la stored mi restituisce un record, come deve fare.
Una volta avuto il DataAdapter, popolo una serie di TextBox, quindi per ogni campo applico il "ToString()".
Alla fine mi restituisce l'errore...

Errore nel codice sorgente:

Durante l'esecuzione della richiesta Web corrente è stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione dell'eccezione, vedere l'analisi dello stack dell'eccezione riportata di seguito.

Dove sbaglio?

Mi rendo conto che l'errore è mio ma purtroppo non ho nessuno a cui chiedere (lavoro in un'azienda di software che ci sta mettendo in cassa integrazione).

Che vita del cavolo...
Lo stacktrace visualizzato dalla pagina d'errore dovrebbe contenere tutte le info necessarie; ad ogni modo ti consiglio di attivare il debugger di VS per intercettare l'errore. Purtroppo senza ulteriori informazioni è difficile anche solo formulare delle ipotesi (il database potrebbe contenere valori null?)

Matteo Casati
GURU4.net
29 messaggi dal 29 aprile 2002
Ciao.
Grazie per il fatto di perdere tempo con me.

Ripeto che sto imparando mentre sviluppo. Arrivo da ASP classico e dalla programmazione VB.

Il DB può contenere valori null ma nonostante questo in alcuni casi mi funziona perfettamente.

Si, sto facendo il debug dell'applicazione.
Anche nel caso in cui va in errore, prima di incartarsi mi restituisce un dataAdapter popolato col quale "fillizzo" (neologismo appena inventato!!!) un dataTable. Il dataTable lo uso per popolare le TextBox della mia WebForm. Alla fine della valorizzazione o funziona tutto oppure compare la pagina di errore.

Ho messo tutto in un try catch e non entra mai nel catch...

Sto pensando di tornare a lavorare in una radio privata come tanti anni fa...
asab67 ha scritto:
Grazie per il fatto di perdere tempo con me.

Beh, io non la considero certo una perdita di tempo altrimenti non lo farei.

Alla fine della valorizzazione o funziona tutto oppure compare la pagina di errore.

Devi capire quale istruzione ed in quale contesto (= con quale record) genera l'errore procedendo con il debug per singole istruzioni (F10/F11)

Ho messo tutto in un try catch e non entra mai nel catch

L'unica spiegazione è che il try...catch non comprende l'istruzione che genera l'errore

Sto pensando di tornare a lavorare in una radio privata come tanti anni fa...

Ma non dai! Per un errore in una pagina? Tieni duro!

Matteo Casati
GURU4.net
29 messaggi dal 29 aprile 2002
Ciao.

Mi sorge un dubbio: e se l'errore fosse restituito da una gridView?
Nella pagina ho inserito 3 gridView che valorizzo sempre con delle stored procedures.
Visto che facendo il debug (con F11 così guardo proprio tutto quel poco che succede) l'errore non mi viene segnalato nel momento in cui valorizzo le diverse TextBox, non sarebbe possibile che avvenga qualcosa di anomalo durante il dataBind di qualcuna di queste benedette gridView?

L'analisi dello stack che viene visualizzata purtroppo non la so interpretare al 100% ma leggendola mi sembra che abbia a che fare con un dataBind...

Ti posto alcune righe:

System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1297
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +19
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +142
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +72

Ma se mai avessi avuto la fortuna del principiante ed avessi azzeccato il problema, come è possibile che alcune volte funzioni perfettamente?

E soprattutto, come si risolve una cosa del genere? Invece che utilizzare gli oggetti "standard" dovrei eseguire il popolamento della gridView attraverso codice in modo tale da beccare il simpatico campetto che spacca le scatole?

Sarebbe una spremuta di sangue... per me...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.