AspNetPager分页
Puser = Request.QueryString["User"];
 MyComm = new SqlCommand("List", conn);
            MyComm.CommandType = CommandType.StoredProcedure;
            MyComm.Parameters.AddWithValue("@pageindex", 1);
            MyComm.Parameters.AddWithValue("@pagesize", 1);
            MyComm.Parameters.AddWithValue("@docount", true);
            MyComm.Parameters.AddWithValue("@UserName", Puser);
            conn.Open();
            AspNetPager1.RecordCount = (int)MyComm.ExecuteScalar();
            conn.Close();
            BindData();select count(*) from Fcs  WHERE user=@UserName
查询到0条记录,但数据库里有18条记录的
存储过程中的查询
select count(*) from Fcs 这样能正常(不带条件) 查到18条
select count(*) from Fcs  WHERE user=@UserName这样就查询不了了,传进去的值是正确的(带条件)查到0条
select count(*) from Fcs  WHERE user=N'值' 我单独放到查询管理器里运行又能查到.查到18条
有人知道什么原因吗? 

解决方案 »

  1.   

    //献上存储过程...CREATE procedure ComFloor_List 
    (@UserName NVarChar,
    @pagesize int,
    @pageindex int,
    @docount bit)
    as
    set nocount on
    if(@docount=1)
    ------------------------------------
    --select count(*) from Fcs  WHERE fcs_user=@UserName(不正常)
    --select count(*) from Fcs(正常)
    ------------------------------------
    select count(*) from Fcs  WHERE fcs_user=@UserName
    else
    begin
    declare @indextable table(id int identity(1,1),nid int)
    declare @PageLowerBound int
    declare @PageUpperBound int
    set @PageLowerBound=(@pageindex-1)*@pagesize
    set @PageUpperBound=@PageLowerBound+@pagesize
    set rowcount @PageUpperBound
    insert into @indextable(nid) select Fcs_Id from Fcs  WHERE fcs_user=@UserName order by Fcs_Id desc
    select * from Fcs O,@indextable t where O.Fcs_Id=t.nid
    and t.id between @PageLowerBound+1 and @PageUpperBound order by t.id
    end
    set nocount off
    GO
      

  2.   

    nvarchar 就是这个字段类型了 
      

  3.   

    try:
    @UserName   NVarChar(2000),