i am getting error when i run this code like
"Procedure or function spx_Pager has too many arguments specified."
i paste the sp code below
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spx_Pager]
@PageNo int = 1,
@ItemsPerPage int = 2,
@TotalRows int out
AS
BEGIN
SET NOCOUNT ON
DECLARE
@StartIdx int,
@SQL nvarchar(max),
@SQL_Conditions nvarchar(max),
@catname varchar(100),
@EndIdx int
IF @PageNo < 1 SET @PageNo = 1
IF @ItemsPerPage < 1 SET @ItemsPerPage = 10
SET @StartIdx = (@PageNo -1) * @ItemsPerPage + 1
SET @EndIdx = (@StartIdx + @ItemsPerPage) - 1
SET @SQL = 'SELECT ProductID, [Name], [imageurl],[image_des], [rate]
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ProductID) AS Row, *
FROM product_gallery ) AS tbl WHERE prod_cat_name=@catname and Row >= '
+ CONVERT(varchar(9), @StartIdx) + ' AND
Row <= ' + CONVERT(varchar(9), @EndIdx)
EXEC sp_executesql @SQL
SET @SQL = 'SELECT @TotalRows=COUNT(*) FROM product_gallery'
EXEC sp_executesql
@query = @SQL,
@params = N'@TotalRows INT OUTPUT',
@TotalRows = @TotalRows OUTPUT
END
code behind code
protected void Pager_Click(object sender, EventArgs e)
{
LinkButton lnkPager = (LinkButton)sender;
int PageNo = 1;
switch (lnkPager.CommandName)
{
case "Previous":
PageNo = this.CurrentPage - 1;
break;
case "Next":
PageNo = this.CurrentPage + 1;
break;
}
int TotalRows = this.BindList(PageNo);
int PageCount = this.CalculateTotalPages(TotalRows);
ViewState["CurrentPage"] = PageNo;
if (PageNo == 1)
{
lnkPrev.Enabled = false;
}
else
{
lnkPrev.Enabled = true;
}
if (PageNo == PageCount)
{
lnkNext.Enabled = false;
}
else
{
lnkNext.Enabled = true;
}
}
private int BindList(int PageNo)
{
int TotalRows = 0;
DataTable dt = new DataTable();
String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["purpleconnString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand("spx_Pager");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@PageNo", SqlDbType.Int).Value = PageNo ;
cmd.Parameters.Add("@catname", SqlDbType.VarChar).Value = category.ToString();
cmd.Parameters.Add("@ItemsPerPage", SqlDbType.Int).Value = ItemsPerPage;
cmd.Parameters.Add("@TotalRows", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.Connection = con;
try
{
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
DataList1.DataSource = dt;
DataList1.DataBind();
TotalRows = Convert.ToInt32(cmd.Parameters["@TotalRows"].Value);
}
catch (Exception ex)
{
Response.Write(ex.Message);
lblerror.Text = ex.Message;
}
finally
{
con.Close();
sda.Dispose();
con.Dispose();
}
return TotalRows;
}
private void Prepare_Pager(int TotalRows)
{
int intPageCount = this.CalculateTotalPages(TotalRows);
if (intPageCount > 1 && this.CurrentPage < intPageCount)
{
this.lnkNext.Enabled = true;
}
if (this.CurrentPage != 1)
{
this.lnkPrev.Enabled = true;
}
else
{
this.lnkPrev.Enabled = false;
}
}
private int CalculateTotalPages(int intTotalRows)
{
int intPageCount = 5;
double dblPageCount = (double)(Convert.ToDecimal(intTotalRows) / Convert.ToDecimal(this.ItemsPerPage));
intPageCount = Convert.ToInt32(Math.Ceiling(dblPageCount));
return intPageCount;
}