gridview存储过程分页
1. 再问GridView自定义排序和分页的问题!
我这里提供一个自定义排序的sql,写一个方法带2个参数,每一页的记录数pageSize,页的索引pageIndex,当然也可以加查询条件,排序条件,根据实际情况添加参数个数
//翻页查询Sql语句
select top pageSize * from dbo.spt_values
where 字段1 not in(
select top pageSize*pageIndex 字段1 from 表dbo.spt_values)
pageSize:每一页的记录数
pageIndex:页索引
desc 表示降序排序 例如:order by 字段名称 desc
2. 两个datatable合成一个datatable并绑定到gridview分页显示
那你得保证字段一样····
把B表的数据 循环到A表中 就可以了
3. gridview调用存储过程分页,数据库用的是oracle,oracle不太懂,最好有存储过程和调用的具体代码
两张表是指什么,union all ?合并一起的数据,还是Left join inner join的数据
union all需要列名一致
分页的话用这种,SqlServer版的。
Create PROCEDURE [dbo].[PagedInquiry]
@PageSize nvarchar(30),
@PageIndex nvarchar(30)
AS
select * from 表(
select *,ROW_NUMBER() OVER(ORDER BY 排序字段 desc) as IDRANK from 表
)AS IDWITHROWNUMBER
where
IDRANK >= (@PageSize*@PageIndex) AND IDRANK < (@PageSize*(@PageIndex+1))
4. gridview存储过程分页
给你个例子,你可以参考下面的,改成你自己的表名和字段就可以了,因为我不知道你的表结构
CREATE PROCEDURE spGetAllEmployee (
@startIndex INT,
@pageSize INT,
@sortBy NVARCHAR(30),
@totalEmployees INT OUTPUT)
AS
SET NOCOUNT ON
DECLARE @sqlStatement NVARCHAR(MAX),
@upperBound INT
IF @startIndex < 1
SET @startIndex = 1
IF @pageSize < 1
SET @pageSize = 1
SET @upperBound = @startIndex + @pageSize
SELECT @totalEmployees = COUNT(*) FROM Employee
SET @sqlStatement =
' SELECT E.EmployeeID, E.EmployeeCode, E.Name, E.Department, E.Salary FROM ( SELECT ROW_NUMBER() OVER(ORDER BY ' + @sortBy + ') AS rowNumber, * FROM Employee ) AS E WHERE rowNumber >= ' +
CONVERT
(VARCHAR(9), @startIndex) + ' AND rowNumber < ' + CONVERT(VARCHAR(9), @upperBound)
EXEC (@sqlStatement)
5. C#.Net + SqlServer2005 用存储过程方式,使用下面的分页语句,对一个DataGridView进行分页
我用雅虎邮箱给你发过去了,你看一下,那是个我没事联系的小功能,分页我是用存储过程写的(语句和你那个差不多,我只是多加了几个wehere),你需要在数据库了看那个存储过程就可以了
6. gridview如何实现分页功能.
方法一
SELECT DISTINCT TOP 8 CategoryID
FROM tbl_Proct_Procts
WHERE (UserID = 73) AND (CategoryID >
(SELECT MAX(categoryid)
FROM (SELECT DISTINCT TOP 16 categoryid
FROM tbl_proct_procts where userid=73
ORDER BY categoryid) AS b))
ORDER BY CategoryID
--方法二
select top 10 * from [order details]
where orderid>all(select top 10 orderid from [order details] order by orderid)
order by orderid
下面的来自CSDN-------------------------------------
SQL Server 存储过程的分页,这个问题已经讨论过几年了,很多朋友在问我,所以在此发表一下我的观点
建立表:
CREATE TABLE [TestTable] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[Country] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Note] [nvarchar] (2000) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
插入数据:(2万条,用更多的数据测试会明显一些)
SET IDENTITY_INSERT TestTable ON
declare @i int
set @i=1
while @i<=20000
begin
insert into TestTable([id], FirstName, LastName, Country,Note) values(@i, 'FirstName_XXX','LastName_XXX','Country_XXX','Note_XXX')
set @i=@i+1
end
SET IDENTITY_INSERT TestTable OFF
-------------------------------------
分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID
-------------------------------------
分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
-------------------------------------
分页方案三:(利用SQL的游标存储过程分页)
create procere XiaoZhengGe
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。
通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用
在实际情况中,要具体分析。
7. 在winform下,怎么实现datagridview数据控件的分页或者谁有第三方datagridview 分页控件可以转告我
用datagridview分页性能损耗还是比较大,这个你可以用SQL语句分页或者是存储过程分页。 上面加两个按钮,上一页,下一页。 不过要是不要求太高的展示,用其他控件比较好。
8. datagridview自带分页支持多少数据分页
分页一般显示可以显示10页左右
如果你上百条数据最好是用一个自己封装好的分页控件(网上有很多的,可以去搜搜)
少的话就可以用自带的
9. winform中的DataGridView如何实现分页(C#)
常用分页一般有两种
一是在数据库写存储过程,或利用sql语句,每次只取出N条数据。
二是将数据一次性全取出来,然后利用程序来进行分页。
第一种在数据量比较大的时候性能好点。
希望你能明白。