50 messaggi dal 24 febbraio 2007
ciao a tutti
premetto che prima di postare ho consultato i post sull'argomento non ho trovato soluzione

ho un SqlDataSource, a cui vengono assegnate da codice delle store procedure, collegato ad un DataView, quando faccio l'update mi viene restituito il seguente errore:

Troppi argomenti specificati per la procedura o funzione aggiorna_esami_icd_0405.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: System.Data.SqlClient.SqlException: Troppi argomenti specificati per la procedura o funzione aggiorna_esami_icd_0405.

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.

Analisi dello stack:

[SqlException (0x80131904): Troppi argomenti specificati per la procedura o funzione aggiorna_esami_icd_0405.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +177
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +68
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +199
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2305
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +147
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +1021
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +314
System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +413
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +115
System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +392
System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +643
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +78
System.Web.UI.WebControls.DetailsView.HandleUpdate(String commandArg, Boolean causesValidation) +1152
System.Web.UI.WebControls.DetailsView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +450
System.Web.UI.WebControls.DetailsView.OnBubbleEvent(Object source, EventArgs e) +87
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +35
System.Web.UI.WebControls.DetailsViewRow.OnBubbleEvent(Object source, EventArgs e) +109
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +35
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +85
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +153
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +170
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4921



posto il codice del datasource e del dataview


<asp:SqlDataSource ID="sds_esami" runat="server" ConnectionString="<%$ ConnectionStrings:sotil %>"
SelectCommandType="StoredProcedure" UpdateCommandType="StoredProcedure" >
<UpdateParameters>
<asp:Parameter Name="id_studente" Type="String" />
<asp:Parameter DefaultValue="0" Name="Analisi" Type="Int32" />


</UpdateParameters>
<SelectParameters>
<asp:ProfileParameter Name="id_studente" PropertyName="UserName" Type="String" />
</SelectParameters>
</asp:SqlDataSource>


<asp:DetailsView ID="dv_esami" runat="server" DataSourceID="sds_esami" DataKeyNames="id_studente">
<Fields>
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp:DetailsView>


--store procedure--

ALTER PROCEDURE aggiorna_esami_icd_0405

@id_studente VarChar(50),
@Analisi Int

AS
UPDATE esame_icd_0405
SET
Analisi_Matematica = @Analisi

WHERE id_studente = @id_studente
RETURN


grazie in anticipo per l'aiuto!

punx44
Ti consiglio di usare SqlProfiler e verificare che query viene effettivamente passata al db.

Ciao,
m.
50 messaggi dal 24 febbraio 2007
ciao grazie per la risposta
dove trovo sql profiler?

punx44
50 messaggi dal 24 febbraio 2007
grazie alla pazienza di nostromo ho trovato il problema. c'era una discordanza tra i nomi dei campi della tabella e i nomi dei parametri e quindi ne venivano generati il doppio.
ora però non effettua l'aggioramento. se modifico i valori del data view e aggiorno, non vengono salvate le modifiche

punx44
posta la storedprocedure, i parametri cono correttamente valorizzati?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
50 messaggi dal 24 febbraio 2007
il problema è che non vengono assegnati i valori specificati nel data view ai parametri.


--store procedure--

ALTER PROCEDURE aggiorna_esami_icd_0405

@id_studente VarChar(50),
@Analisi_Matematica Int,
@Basi_di_Dati Int,
@Calcolo_Numerico Int,
@Editoria_Multimediale Int,
@Etica_della_Comunicazione Int,
@Fondamenti_di_Informatica Int,
@Ingegneria_del_Software Int,
@Interazione_Uomo_Macchina Int,
@Lingua_Inglese Int,
@Lingua_Italiana Int,
@Linguaggi_di_Programmazione Int,
@Matematica_Discreta Int,
@Metodi_di_Osservazione Int,
@Progettazione_e_Produzione_Multimediale Int,
@Progettazione_e_Produzione_per_la_Didattica Int,
@Programmazione Int,
@Programmazione_per_il_Web Int,
@Psicologia_della_Comunicazione_Digitale Int,
@Sistemi_di_Elaboratori_dell_Informazione Int,
@Reti_di_Calcolatori Int,
@Statistica_Matematica Int
AS

UPDATE [esame_icd_0405] SET
[Basi_di_Dati] = @Basi_di_Dati,
[Analisi_Matematica] = @Analisi_Matematica,
[Calcolo_Numerico] = @Calcolo_Numerico,
[Editoria_Multimediale] = @Editoria_Multimediale,
[Etica_della_Comunicazione] = @Etica_della_Comunicazione,
[Fondamenti_di_Informatica] = @Fondamenti_di_Informatica,
[Ingegneria_del_Software] = @Ingegneria_del_Software,
[Interazione_Uomo_Macchina] = @Interazione_Uomo_Macchina,
[Lingua_Inglese] = @Lingua_Inglese,
[Lingua_Italiana] = @Lingua_Italiana,
[Linguaggi_di_Programmazione] = @Linguaggi_di_Programmazione,
[Matematica_Discreta] = @Matematica_Discreta,
[Metodi_di_Osservazione] = @Metodi_di_Osservazione,
[Progettazione_e_Produzione_Multimediale] = @Progettazione_e_Produzione_Multimediale,
[Progettazione_e_Produzione_per_la_Didattica] = @Progettazione_e_Produzione_per_la_Didattica,
[Programmazione] = @Programmazione,
[Programmazione_per_il_Web] = @Programmazione_per_il_Web,
[Psicologia_della_Comunicazione_Digitale] = @Psicologia_della_Comunicazione_Digitale,
[Sistemi_di_Elaboratori_dell_Informazione] = @Sistemi_di_Elaboratori_dell_Informazione,
[Reti_di_Calcolatori] = @Reti_di_Calcolatori,
[Statistica_Matematica] = @Statistica_Matematica
WHERE [id_studente] = @id_studente
RETURN

punx44
50 messaggi dal 24 febbraio 2007
risolto. c'era una chiamata al databind di troppo :)
grazie!

punx44
ottimo

buon lavoro

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.