2010-09-07 3 views
0

J'ai un problème dans ListView avec DataPager.ASP.NET ListView avec DataPager erreur de lancement après aller à la page suivante

J'ai SqlDataSource

 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ADSConnectionString %>" 
    SelectCommand="usp_posts_getall" SelectCommandType="StoredProcedure"> 
</asp:SqlDataSource> 

et il a été binded dans ListView. J'ai mis mon PageSize dans DataPager à 5, donc après la navigation à la page suivante.

Il jette une erreur

 
Procedure or function usp_posts_getall has too many arguments specified 

dans mon usp_posts_getall, j'ai seulement 1 paramètre

 
@thisCategoryID int 

Qu'est-ce qui a mal tourné?

[SqlException (0x80131904). Procédure ou fonction usp_posts_getall a trop d'arguments spécifiés] System.Data.SqlClient.SqlConnection.OnError (exception de SqlException, Boolean breakConnection) 1951450 System.Data.SqlClient.SqlInternalConnection. OnError (exception SqlException, Boolean breakConnection) 4849003 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj) 194 System.Data.SqlClient.TdsParser.Run (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2394 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33 Système. Data.SqlClient.SqlDataReader.get_MetaData() +83 System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, runBehavior runBehavior, String resetOptionsString) +297 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, runBehavior RunBehavior, Boolean returnStream, async Boolean) 954 System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, runBehavior runBehavior, Boolean returnStream, méthode String, résultat DbAsyncResult) 162 System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, méthode String) +32 System.Data.SqlClient.SqlCommand.ExecuteReader (Comportement CommandBehavior, méthode String) +141 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (comportement CommandBehavior) +12 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader (comportement CommandBehavior) +10 System.Data.Common.DbDataAdapter.FillInternal (jeu de données DataSet, DataTable [] datatables, Int32 startRecord, Int32 maxRecords, Chaîne srcTable, commande IDbCommand, comportement CommandBehavior) +130 System.Data.Common.DbDataAdapter.Fill (ensemble de données DataSet, Int32 startRecord, Int32 maxRecords, chaîne srcTable, commande IDbCommand, comportement CommandBehavior) +287 System.Data.Common.DbDataAdapter .Remplir (DataSet dataSet, String srcTable) 92 System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect (arguments de DataSourceSelectArguments) +1297 System.Web.UI.DataSourceView.Select (arguments de DataSourceSelectArguments, DataSourceViewSelectCallback rappel) 19 système .Web.UI.WebControls.Dat aBoundControl.PerformSelect() 142 System.Web.UI.WebControls.ListView.PerformSelect() +57 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() 73 System.Web.UI.WebControls.BaseDataBoundControl. EnsureDataBound() +82 System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender (EventArgs e) +22 System.Web.UI.Control.PreRenderRecursiveInternal() +80 System.Web.UI.Control.PreRenderRecursiveInternal() 171 System.Web.UI.Control.PreRenderRecursiveInternal() 171 System.Web.UI.Control.PreRenderRecursiveInternal() 171 System.Web.UI.Control.PreRenderRecursiveInternal() 171 système. Web.UI.Control.PreRenderRecursiveInternal() 171 System.Web.UI.Control.PreRenderRecursiveInternal() 171 System.Web.UI.Control.PreRenderRecursiveInternal() 171 System.Web.UI.Control.PreRenderRecursiveInternal () +171 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

Répondre

1

ok désolé,

J'ai oublié d'effacer les SelectParameters parce que dans mon Page_Load, j'ai ce code:

 
     Parameter param = new Parameter(); 
     param.Name = "thisCategoryID"; 
     param.Type = TypeCode.Int32; 
     param.DefaultValue = SelectedCategoryID.ToString(); 

     SqlDataSource1.SelectParameters.Clear(); // <<--- and I forgot this 
     SqlDataSource1.SelectParameters.Add(param); 

il travaille maintenant

Questions connexes