![](/img/trans.png)
[英]How to count total records of SQL before adding pagination and store count value in ASP.Net
[英]How to Count Total records before Fetching records in sql server
我在Windows Form应用程序上工作,想在DataGridView
执行分页,所以我为此写了一个查询
Select DISTINCT TOP(1000)
TblStudentBioData.RegNo
, Coalesce(TblStudentBioData.First_NameUr + SPACE(1) +
TblStudentBioData.Middle_NameUr + SPACE(1),TblStudentBioData.First_NameUr)
+ TblStudentBioData.Last_NameUr AS Name
, TblStudentBioData.Father_NameUr
, Coalesce(Ay.AcademicYearName,N'+@InCaseNull+') As AcademicYearName
, Coalesce(Smst.SemName,N'+@InCaseNull+') As SemName
, Coalesce(Colg.CollegeName,N'+@InCaseNull+') As CollegeName
, Coalesce(CID.ClassName,N'+@InCaseNull+') As ClassName
, TblImages.Images
, TblStudentBioData.Student_ID
, TblImages.ImageId
, Ay.AcademicYearId
, Smst.SemesterId
, TblClassSchedule.ClassSchId
FROM TblStudentBioData
INNER JOIN TBLCFGSEX AS sex
ON TblStudentBioData.CfgSexId = sex.CfgSexId
LEFT JOIN TBLMARITALSTATUS ms
ON TblStudentBioData.MaritalStatusId = ms.MaritalStatusId
INNER JOIN TblImages
ON TblStudentBioData.ImageId = TblImages.ImageId
LEFT JOIN TBLBLOODGROUP BG
ON TblStudentBioData.BloodID = BG.BloodId
LEFT JOIN TblStudentDetail
ON (TblStudentBioData.Student_ID = TblStudentDetail.Student_ID)
LEFT JOIN TblStudentSubAss
ON TblStudentDetail.StudentDetailID = TblStudentSubAss.StudentDetailID
LEFT JOIN TblClassSchedule
ON TblStudentDetail.CLassSchID = TblClassSchedule.ClassSchID
LEFT JOIN TblSubAss
ON TblSubAss.SubAssId = TblStudentSubAss.SubAssId
LEFT JOIN TblClass AS CID
ON TblClassSchedule.ClassID = CID.ClassID
LEFT JOIN TBLCOLLEGE Colg
ON CID.CollegeId = Colg.CollegeID
LEFT JOIN TblSemAssigning SA
ON TblClassSchedule.SemAssId = SA.SemAssId
LEFT JOIN TblAcademicYear AY
ON SA.AcademicYearId = AY.AcademicYearId
LEFT JOIN TblSemester Smst
ON Smst.SemesterId = SA.SemesterId
该查询返回的行数超过28K
但对于分页,我只希望1000行,而总记录为28K
,则我将明智地获取记录1000
。 任何想法我该怎么做?
注意:
该查询需要20秒钟以上的时间来执行,我想要一个不会增加执行时间的解决方案。
如果您在查询中仅拥有1:1明细表,则可以首先对主表的主键字段执行selec count()。 应该只持续几毫秒
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.