加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL数据库通用SQL存储过程分页以及asp.net后台调用的方法

发布时间:2020-12-12 02:51:54 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL数据库通用SQL存储过程分页以及asp.net后台调用的方法》要点: 本文介绍了MYSQL数据库通用SQL存储过程分页以及asp.net后台调用的方法,希望对您有用。如果有疑问,可以联系我们。 MYSQL学习 创立表格并添加300万数据 MYSQL学习 use StoredCREATE TABL

《MYSQL数据库通用SQL存储过程分页以及asp.net后台调用的方法》要点:
本文介绍了MYSQL数据库通用SQL存储过程分页以及asp.net后台调用的方法,希望对您有用。如果有疑问,可以联系我们。

MYSQL学习创立表格并添加300万数据

MYSQL学习
use Stored
CREATE TABLE UserInfo( --创立表
id int IDENTITY(1,1) PRIMARY KEY not null,--添加主键和标识列
UserName varchar(50) 
)
 
declare @i int --添加3百万数据,大概4分钟时间
set @i=1
while @i<3000000
begin
insert into UserInfo (UserName) values(@i)
set @i=@i+1
end

MYSQL学习存储过程T-SQL

MYSQL学习
create PROCEDURE [dbo].[GetDataList]
(
 @TableName varchar(5000),--表名
 @Fields varchar(5000) = '*',--字段名(全部字段为*)
 @OrderField varchar(5000),--排序字段(必需!支持多字段)
 @OrderType varchar(5000),--排序类型
 @sqlWhere varchar(5000) = Null,--条件语句(不用加where)
 @pageSize int,--每页多少条记录
 @pageIndex int = 1,--指定当前为第几页
 @TotalPage int output,--返回总页数 
 @totalRecord int output    --计算总记录数       --返回总记录数
 )
as
begin  Begin Tran --开始事务  
  
  Declare  @sql nvarchar(500); 
  if (@SqlWhere='' or @sqlWhere=NULL)
    set @sql = 'select @totalRecord = count(*) from ' + @TableName
  else
    set @sql = 'select @totalRecord = count(*) from ' + @TableName + ' where ' + @sqlWhere  
      EXEC sp_executesql @sql,N'@totalRecord int OUTPUT',@totalRecord OUTPUT--计算总记录数 
        
  
  --计算总页数
  select @TotalPage=CEILING((@totalRecord+0.0)/@PageSize)  if (@SqlWhere='' or @sqlWhere=NULL)
    set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @OrderField +' ' + @Ordertype+' ) as rowId,' + @Fields + ' from ' + @TableName 
  else
    set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @OrderField +' ' + @Ordertype+' ) as rowId,' + @Fields + ' from ' + @TableName + ' where ' + @SqlWhere  
--处理页数超出范围情况
  if @PageIndex<=0 
    Set @pageIndex = 1
  
  if @pageIndex>@TotalPage
    Set @pageIndex = @TotalPage   --处理开始点和结束点
  Declare @StartRecord int
  Declare @EndRecord int
  
  set @StartRecord = (@pageIndex-1)*@PageSize + 1
  set @EndRecord = @StartRecord + @pageSize - 1  --继续合成sql语句
  set @Sql = @Sql + ') as ' + @TableName + ' where rowid between ' + Convert(varchar(50),@StartRecord) + ' and ' + Convert(varchar(50),@EndRecord) 
  --print @Sql 
  
   Exec(@Sql)
  ---------------------------------------------------
  If @@Error <> 0
   Begin
    RollBack Tran
    Return -1
   End
   Else
   Begin
    Commit Tran
    Return @totalRecord ---返回记录总数
   End  
end
--exec GetDataList 'Userinfo','*','id','desc','',10,1,3,3000000

MYSQL学习前台页面Default2.aspx

MYSQL进修
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
   <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    <asp:Label ID="lbl_page" runat="server" Text="Label"></asp:Label>
  </div>
  </form>
</body>
</html>

MYSQL进修后台CS代码Default2.aspx.cs

欢迎参与《MYSQL数据库通用SQL存储过程分页以及asp.net后台调用的方法》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读