0

DataPager で ListView に問題があります。

私はSqlDataSourceを持っています

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

そしてそれはListViewでバインドされました。DataPager の PageSize を 5 に設定したので、次のページに移動した後。

エラーをスローしました

プロシージャまたは関数 usp_posts_getall に指定された引数が多すぎます

私のusp_posts_getallには、パラメーターが 1 つしかありません

@thisCategoryID int

何が悪かったのか?

[SqlException (0x80131904): プロシージャまたは関数 usp_posts_getall に指定された引数が多すぎます。 ) +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 System.Data.SqlClient.SqlDataReader.get_MetaData() +83 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior,文字列 resetOptionsString) +297 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method 、DbAsyncResult 結果) +162 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、String メソッド) +32 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 動作、String メソッド) +141 System. Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior 動作) +12 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior 動作) +10 System.Data.Common.DbDataAdapter.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 srcTable) +92 System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments 引数) +1297 System.Web.UI.DataSourceView.Select(DataSourceSelectArguments 引数, DataSourceViewSelectCallback コールバック) +19 System.Web.UI.WebControls.DataBoundControl.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 システム。 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.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Control.PreRenderRecursiveInternal() +171 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) +842PreRenderRecursiveInternal() +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 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.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842PreRenderRecursiveInternal() +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 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.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842PreRenderRecursiveInternal() +171 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.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842PreRenderRecursiveInternal() +171 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.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842
4

1 に答える 1

1

すみません、

Page_Load に次のコードがあるため、SelectParameters をクリアするのを忘れていました。

        パラメータ param = 新しいパラメータ();
        param.Name = "thisCategoryID";
        param.Type = TypeCode.Int32;
        param.DefaultValue = SelectedCategoryID.ToString();

        SqlDataSource1.SelectParameters.Clear(); // <<--- そしてこれを忘れていた
        SqlDataSource1.SelectParameters.Add(param);

それは今働いています

于 2010-09-07T04:59:53.357 に答える