ASP.NET ListView с ошибкой выбрасывания DataPager после перехода на следующую страницу - PullRequest
0 голосов
/ 07 сентября 2010

У меня проблема в ListView с DataPager.

У меня есть SqlDataSource

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

, и он был связан в ListView.Я установил свой PageSize в DataPager на 5, поэтому после перехода на следующую страницу.

В моем usp_posts_getall выдается ошибка *1001* usp_posts_getall *, у меня только 1 параметр

@thisCategoryID int

Что пошло не так?

[SqlException (0x80131904): Процедуре или функции usp_posts_getall указано слишком много аргументов.] System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое значение breakConnection) +1951450 System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое значение breakConnection) +4849003 System.Data.SqlClient.TdsParser.ThrowExceptionSarS.Ont.Signer.SourcePjectSjectSjectPjectSarSOser_Oар.run (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader DATASTREAM, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2394 System.Data.SqlClient.SqlDataReader.ConsumeMetaData () +33 System.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, RunBehaviorRunBehavior runBehavior, логический returnStream, метод String, результат DbAsyncResult) +162 System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, метод BooleataBellSecreист, Метод String) +141 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (поведение CommandBehavior) +12 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader (поведение CommandBehavior) +10 System.Data.Common.DbD.FillInternal (набор данных DataSet, DataTable [] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior) +130 System.Data.Common.DbDataAdapter.Fill (DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior) +287 System.Data.Common.DbDataAdapter.Fill (DataSet dataSet, String System92),.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.PurInternal (PureRternal)System.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.Control.PreRR() +171 System.Web.UI.Control.PreRenderRecursiveInternal () +171 System.Web.UI.Page.ProcessRequestMain (логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint) +842

1 Ответ

1 голос
/ 07 сентября 2010

хорошо, извините,

Я забыл очистить параметры SelectParameters, потому что в моем Page_Load у меня есть этот код:

        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);

сейчас работает

...