سلام دوستان خوبم :

من براي صفحه بندي ديتاليست از يك SP استفاده ميكنم و لينك ها را ميسازم .

كد SP :
ALTER  PROCEDURE dbo.Dsl_paging
(
@startRowIndex int,
@maximumRows int
)
AS

--DECLARE @startRow int

SET ROWCOUNT @startRowIndex

SET ROWCOUNT @maximumRows

SELECT * FROM Tbl_name

ORDER BY id

SET ROWCOUNT 0


كد هاي C#‎ براي صفحه بندي :
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin  gs[0].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
this.Literal1.Text = LinkPaging();
if (!IsPostBack)
{
SelectAll();
}
}
private DataTable Bind(int start,int max)
{
SqlDataAdapter dat_sel = new SqlDataAdapter("Dsl_paging", con);
dat_sel.SelectCommand.CommandType = CommandType.StoredProcedure;
dat_sel.SelectCommand.Parameters.AddWithValue("@st artRowIndex", start);
dat_sel.SelectCommand.Parameters.AddWithValue("@ma ximumRows", max);
DataTable dt = new DataTable();
dat_sel.Fill(dt);
return dt;

}

private int count()
{
SqlCommand cmd = new SqlCommand("all_count", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
int c = (int)cmd.ExecuteScalar();
con.Close();
return c;
}

private string LinkPaging()
{
int cu = count();
string link = "";
if (cu > 0)
{
int pg = cu / 10;
int i=1;
if( cu % 10 != 0 )
{
pg+= 1;
}
while (i <= pg)
{
link += "<a href='paging.aspx?p=" + i.ToString() + "'>" + i.ToString() + "</a>|";
i++;
}
}
return link;
}

private void SelectAll()
{
try
{
int p =int.Parse(Request.QueryString["p"].ToString());
int max = p * 10;
int start = max - 10;
this.DataList1.DataSource = Bind(start, max);
this.DataList1.DataBind();
}
catch
{
this.DataList1.DataSource = Bind(1, 10);
this.DataList1.DataBind();
}
}


از دوستان كسي ميدونه كه مشكل از كجاست . من فكر ميكنم مشكل از SP باشه ولي نميدونم از كجاش هست . اگر كسي ميدونه بگويد ممنون ميشم .