62,025
社区成员
发帖
与我相关
我的任务
分享
create proc ok
@pagesize int,
@pageindex int,
@pagetable nvarchar(50),
@RecordTotal int output
as
declare @sql nvarchar(500)
declare @StrTotalSQL nvarchar(500)
set @StrTotalSQL='select @RecordTotal=count(*) from t1'
-- '+@RecordTotal+'=
begin
set @sql='select top '+str(@pagesize)+' * from '+@pagetable+' where userid not in(select top '+str(@pagesize*(@pageindex-1))+' userid from '+@pagetable+')'
end
execute(@sql)
execute(@StrTotalSQL)
--我要返回记录集,和记录总数。我调用不了,这个记录总数,是不是写错了什么,定还是,我调用有问题?希望有人指点。
execute(@StrTotalSQL)
--修改为才可以为输出参数赋值(ms sql2005)
EXEC sp_executesql @StrTotalSQL,N'@RecordTotal int out',@RecordTotal out
Int32 RecordCount = (Int32)mycmd.Parameters["@RecordTotal"].Value;
//说这个未将对像引用,设置为对像的实例。
string Pagecount = mycmd.Parameters["@RecordTotal"].Value.ToString();
public SqlDataReader ok(string pagetable, int pageindex, int pagesize)
{
SqlCommand mycmd = new SqlCommand("ok", conopen());
mycmd.CommandType = CommandType.StoredProcedure;
SqlParameter workParm;
workParm = mycmd.Parameters.Add("@pagetable", SqlDbType.NVarChar, 50);
mycmd.Parameters["@pagetable"].Value = pagetable;
workParm = mycmd.Parameters.Add("@pageindex", SqlDbType.NVarChar, 50);
mycmd.Parameters["@pageindex"].Value = pageindex;
workParm = mycmd.Parameters.Add("@pagesize", SqlDbType.NVarChar, 50);
mycmd.Parameters["@pagesize"].Value = pagesize;
workParm = mycmd.Parameters.Add("@RecordTotal", SqlDbType.Int);
workParm.Direction = ParameterDirection.Output;
Int32 RecordCount = (Int32)mycmd.Parameters["@RecordTotal"].Value;
return mycmd.ExecuteReader();
}
//调用不起来。真晕。